- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 566869 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175284
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
* B% w& c* w3 a
数据结构——栈(Stack)与队列(Queue)的手写实例
* r! o/ Q6 y: d1 ~3 [8 e% a' l4 @$ g) o% M
[color=rgba(0, 0, 0, 0.74902)]文章目录8 ~* |, b% Z) m3 q$ t7 G
- 一、 栈与队列的定义
- 二、 用数组实现栈
" q) E& s# l& ?; Z- 1、栈的接口定义
- 2、栈的接口实现
- 3、栈的测试8 ?% R2 D0 Y. w
- 三、 用数组实现队列" B* |: u- o# W$ E5 p
- 1、队列的接口定义
- 2、队列的接口实现
- 3、队列的测试
% x7 Q9 w/ p! f
2 I/ x' x$ D3 ~2 T4 S1 b/ S
J2 T4 Q+ g$ V/ j" ~" B7 ^; h一、 栈与队列的定义
* e$ q. U. C$ O4 c; P$ w; V栈[Stack]:是一种限定仅在表尾进行插入和删除操作的线性表;即后进先出(LIFO-last in first out),最后插入的元素最先出来。! L/ |9 e# S) {( E9 w" V
- W; Q! l+ K/ l. v( P* m
队列[Queue]:是一种限定仅在表头进行删除操作,仅在表尾进行插入操作的线性表;即先进先出(FIFO-first in first out):最先插入的元素最先出来。& |% `, l$ s; \% l& f3 E, ]6 b
9 p6 e) k5 `' y7 m3 r0 n5 Y- k' _$ ~' q
0 p5 Z6 I5 c/ v$ v' Y; D二、 用数组实现栈1、栈的接口定义
0 r, m3 V# N, t$ i4 S8 l( n/**& o2 a7 c5 b" L. w/ X
* 定义栈的接口+ W1 W5 p& M! S* a( u0 [ {( _
*
. V. T+ H0 z1 k' v$ S$ s% a+ K* D * @Author zhuhuix
; y/ l6 [. s$ G, [( |( F * @date 2020-05-01( e6 V- e' f: s$ m7 L8 r" Z* ^% D
*/
( T# O. e9 ^# M2 s; a& vpublic interface Stack {
$ h9 L" e5 M( u( L, {% ` /**6 D* Y* |8 d! q: G; ^
* 入栈% g8 v3 q. d2 q5 f2 R3 X
* @param object 入栈元素
7 `+ x/ e2 w$ Q. o */
! }( W+ H0 s, M) Y# m& v* ^ void push(Object object);
$ m+ J$ N1 ]7 x8 p3 ]4 g% Z3 K
1 K1 f9 p3 s _+ z! K /**0 J7 I5 _9 L) w Z* O, S9 M& H2 c! A
* 出栈; {1 ?0 d3 X' q; p( J, r
* @return 出栈元素
! y4 C' t" K) s3 x* h& o, n) _ */
- t$ Q& |( e" S6 O; Q- A' E' p Object pop();
k( l! _8 U+ T s
1 A. q1 l+ c7 l; f: G /**' {* O1 u/ ]& w3 ^
* 获取元素个数" d; u2 N3 X; ?' @
* @return 元素个数- R1 @, w" h: k q! Y- v1 A
*/( i) p* e: E( b/ [
int getElementCount();
* h/ E0 W/ X- _3 H$ J7 ~2 J" f1 N4 T/ A4 B: U2 g( |2 a
/**
6 K) E5 u" q* W; [ m * 遍历栈的元素
# C3 `4 c/ r9 X: y4 l */
4 j2 B( Q. J, Z4 C! e void traverse();
' R1 W; R( \7 f: }' j1 l4 h: ~9 U$ ~
}
; i1 r4 G; c) E, x' W' R1 q4 N2、栈的接口实现5 P" _4 v! Z$ T/ E: l# E M% d7 J; r
/**% b. B1 g* P# T
* 栈的接口实现: z! f8 {3 f, `" G( ^9 J
*
. C# J5 f! e- z/ T! V/ o * @author zhuhuix1 G2 U A$ p2 v
* @date 2020-05-01
. E( c* ]) h) E! k' B+ Z */
% p) v3 X3 u* d' H" @public class StackImpl implements Stack {5 a! G! e d: b9 L
- S( l5 B3 D" W6 ^; V l protected Object[] element;( K& i v& w4 ~, }! ]% w' [
9 }- @( r1 b6 Y% a2 { protected int elementCount;2 d) d/ `) l7 B! p6 W! }/ y
- K# {+ |/ e" v* Q$ ?/ h private int defaultSize = 16;1 j* K, e6 j5 L& |
; S4 J5 M3 A9 i9 ^3 c1 I private int maxSize;/ ^& ~" f0 t0 |* q
5 g* t+ o/ t6 t/ w9 t* W0 T5 n
StackImpl() {# R ^ P ]0 H4 A" Z6 M
element = new Object[defaultSize];' a! |6 ~5 A2 q% h! i# c" d% [
maxSize = defaultSize;
: C) T |8 q% {& F9 u) N& \ }9 v" _6 r5 \& W3 M4 j, r1 ?
: \1 u( D/ K1 v7 |! o9 Y+ F r& Z
StackImpl(int size) { Z4 h0 C2 C$ a+ t* d# ^5 S- e; e
element = new Object[size];6 P* [! K% z+ A) P9 _% |
maxSize = size;; G$ ?: b; n. U! e8 c# Z; Q, O3 B1 j
}
3 e; I" ^, n9 u, n' {6 r( _
( W- V$ w( P: I5 h7 ^8 O @Override
, A6 S, e: g& A2 A' }& u/ ]4 h1 i public void push(Object object) {
/ g, S, \+ r/ J4 g //如果元素个数已经达到数组的最大个数,则进行扩容$ z, _) z7 q8 \1 S2 W
if (elementCount == maxSize) {% }# _& C8 C# u* r! k- P( m
element = Arrays.copyOf(element, elementCount + defaultSize);2 P0 [, \$ M! Y4 I
}, k6 T! n; W; S' _5 Z( r+ c
element[elementCount++] = object;5 J, |2 Z% d& z
, y" k" q0 n4 E0 |6 l! P }
& w ~9 t" h0 [$ R' @% B. h // 本代码未实现数组的自动缩小,具体方法可参考JDK- n {, G, F! A l2 Z+ |
@Override
) ]# m5 ]' B6 i+ `$ z/ ~) {' v public Object pop() {: b/ y5 ^1 C. l7 y5 x! ?
if (elementCount == 0) {$ d4 C: f x6 A% p5 b* \5 Y9 Q
throw new ArrayIndexOutOfBoundsException("栈中无元素");+ @( @# j) g* F/ T" V8 E& x
}9 H4 y/ [8 d+ L. ?
Object object = element[--elementCount];
3 }3 D- V0 M6 n9 z( U& V% ~ element[elementCount] = null;
) O7 e9 _$ O# ?; o* p& E return object;
/ J. T5 w' z0 D }2 F2 S1 c4 e/ A( S
' F+ f) w( Q7 Z% C5 j @Override! p: G% K, ^0 R1 E9 I6 ^* N$ S
public int getElementCount() {( {7 L8 C8 n! |. g
return elementCount;
# K, d4 l i" q+ V8 J& U8 q# t g }$ {8 p2 [' u: x u" ]& K& q
/ k% D* K5 w1 v/ o4 { @Override; n N- ^6 Q" g
public void traverse() {
9 M3 E2 C! f3 f5 T9 y- A for (int i = 0; i < elementCount; i++) {
2 [& e; _0 a3 Q' n System.out.print(element + ",");9 Q3 |& q* g2 @) Z: f0 p7 Z1 ?
}: ^5 l6 E6 P1 U9 C; |
System.out.println();& d2 Y" l8 J' i1 V, A$ r# V, H
}7 v# t6 s) _4 g) l* V
}
5 i/ B6 Y2 m k" d3 V" z2 }, T3、栈的测试* L2 B' _5 H, A# z! c
public class StackTest {- |1 ]; F9 a7 u5 f$ L) }! F
public static void main(String[] args) {+ ^# F$ Y, n& K7 G/ e+ q$ E6 N
Stack stack = new StackImpl();
- e9 n/ U, O, p3 {# Q j4 k$ t5 @7 G x1 r- u- V
//第一次入栈:压入1-153 X& t" J0 u3 o
for (int i = 0; i < 16; i++) {3 C# R% O% G& ^8 ^
stack.push(i);
& C1 o' ]& u S7 j6 L' F# i }' e7 \- G- H% {0 j
System.out.println("第一次入栈后元素个数为:" + stack.getElementCount());
$ t5 w5 U& f% o stack.traverse();
) r$ p5 _! Y+ t& K, C5 W4 a" `$ s8 w* K% b% D% e& H
//第二次入栈:压入16-31$ b' _/ q4 p; N6 g0 W
for (int i = 16; i < 32; i++) {! { z' b/ W: A" \
stack.push(i);
; o$ p: \9 ~$ Z. f" o }& o! `9 L" T& B8 P" n
System.out.println("第二次入栈后的元素个数为:" + stack.getElementCount());! z3 H `% o. [) z
stack.traverse();4 P" h, m$ V& @0 U
% E o2 e4 b9 |4 K( p5 k
//第一次出栈:取出31-16+ x7 H5 d3 P1 U7 Z' O6 z
for (int i = 0; i < 16; i++) {
) U8 o$ _% M9 U9 M* m& W stack.pop();: ]/ q, b! y |7 O7 H
}, z7 ^" O! I9 @7 y4 Z0 T
System.out.println("第一次出栈后的元素个数为:" + stack.getElementCount());
; Z! o0 N2 n9 K- _9 `8 b9 q4 R7 E stack.traverse();& N3 }3 y( O' A! C a% Z7 z
- G7 ^* ]# Z4 }1 v C9 O
//第二次出栈:取出15-0
+ w) G% F5 P4 z4 N9 Z7 y" h for (int i = 0; i < 16; i++) {7 V& O, o( t$ O; t
stack.pop();
, e/ e" v; r/ j, k# ?0 T; M }
* n8 }( y$ x/ Q) q& x& R2 M System.out.println("第二次出栈后的元素个数为:" + stack.getElementCount());
8 U v* ^6 L2 K1 b stack.traverse(); x# A% ?! A/ z
2 O/ n& V7 v4 P5 U' k0 ] W //栈中无元素,出栈报错+ s+ i) q- G* E1 {$ ]
stack.pop();6 \# q: s4 A; U: C o, k
/ f2 X6 w9 _7 m' w }
$ u6 Y" X3 u) s9 u# B7 J' w}1 a! I( I$ w3 N$ N* U
- G6 J. B. R% H1 ~4 e3 Q' J9 M, q z6 H5 F! ~
; C% o" J Q8 y- t7 a R
- b" l. D3 W& F* Q8 f% u+ L三、 用数组实现队列1、队列的接口定义: O1 b+ [. l( Z/ u+ {6 k
/**
) ? u' T& i# _: r/ k- t( Q. m( C * 定义队列的接口
6 ?! ]- d7 H+ I1 F- Y, O- ?: v6 } ** R* G; t/ c6 p* h5 U. J( j) S# o
* @author zhuhuix
6 F* |2 V/ _6 ?( j6 {; {7 ^ * @date 2020-05-01
5 _. f; I0 z! M" ~9 R( P* ] */
1 V) ] S& q3 q) b) P. \public interface Queue {
/ f9 K# B9 C2 I. C
$ K" J- d$ m$ x7 s0 d2 w" R# l /**
: M& Z" m$ [9 M * 获取队列大小3 ~0 r$ B( B% W2 Q, Y) D" x
* @return 队列大小( w4 C @' K9 t+ u, D, y d0 k3 G
*/
l" M! x/ S: `* s. A, Q int getMaxSize();' j3 L) b6 b/ o7 g: x# C" |- c7 `
8 W7 K1 n) S. @5 u4 L2 A /**# Y# T% s+ r/ R
* 入队
. i7 h" T( s+ U5 W) s9 o1 w" @ * @param object 入队元素0 w9 q; V1 b) L0 j3 x" S! {0 D! h( }
*/
, c0 r$ |4 j" n2 V& _( C6 r6 \ void push(Object object);. ~6 G+ U# R( p# \* V
/ |( X1 W* t, u8 W /**
7 n3 G2 n+ @# _) z * 出队
# x& ?* f( p7 ?$ t) |$ ] * @return 出栈元素
/ ^+ \1 J) ~' } */
/ {" L* I' y d/ h' Q$ c6 Y. @ Object pull();
- g" s) c/ m& c; x1 x/ f# q" t+ t; t; S2 ]" R# @
/**
+ h7 f+ A) ^8 r * 获取元素个数7 c% {+ j, q; ] H/ Q3 X% Y
* @return 元素个数& g( X" V4 w( P, P9 `3 m& B+ Q
*/1 H; r8 B* x$ ]( D; z$ X5 l* E, \
int getElementCount();7 T9 l) k& w+ M% r7 Z( Z1 g' k+ T, x
9 B+ ^6 Z$ U$ k8 D2 R
/**
0 R7 l. N9 V( Q* g; {/ [% T * 获取队头元素
! o9 q+ J0 j' x7 G4 ^5 l; {# k * @return 队头元素
' f/ C4 y1 Z, s+ b' V */
& P: M4 N& ?/ l' _7 |& k; l Object getFront();9 ^5 \; r. R/ A* d$ w$ v$ g
) c# t' D9 M8 N$ \' E; }5 D
/**
2 U; \- S1 L6 o( a * 获取队尾元素* a% ~+ Y( a% b) F
* @return 队尾元素/ P9 ^4 h5 U: ?% E; p8 c5 j
*/5 B: M* T& \) o1 v5 p0 \/ i1 z. a
Object getRear();4 \: ] Y% Q6 D3 ^4 g. b# H
0 c* l* ^9 l7 Q6 F /**
- g8 X* A$ U `1 p' T * 遍历队列的元素
: s( S! d: r1 |2 z */2 o2 L0 g1 U! {& Z: f
void traverse();0 |& P6 i9 r" B+ Z7 L
}9 \ B/ ~ n0 M) R
2、队列的接口实现/ ~* s1 w2 ^4 e/ {5 H( k
/**
; q9 e; a- D9 ~( i5 u( j) r * 队列的接口实现
% }2 B2 b. Y5 [1 Z" f6 J4 [5 g *0 F' h3 b& X" ~
* @author zhuhuix* l, H* A$ h& A. u* _9 V
* @date 2020-05-01
, y, a; _: ?3 B( ^' _) i */& ?7 G6 W4 i0 o% Q$ `
public class QueueImpl implements Queue {7 ]! c1 y6 b2 Q, I
5 [, S. t# G' g$ S l. B T" S protected Object[] element;
; ~* ]3 V5 i4 N* I2 o. i( J, {4 `1 T- t9 ^) d
protected int elementCount;
+ X4 x; \9 x* f3 U3 X7 l+ V: y/ Z/ K. v# z! E9 `. M' u6 {" S1 M( M
//队头
- D- m$ Q+ {- T6 D& D. K private int front; w# U2 _ l& W' q+ K2 @2 ~; @- i _
6 M2 ? L% ?& j1 w- s
//队尾( b, q d7 f; v6 l' \3 H9 ?
private int rear;9 A6 j) H. n" s; y5 @% e! ^: B
+ k: n; R6 m( e# n
private int defaultSize = 16;. F8 f( ?& p" M/ H" a
9 O7 p( i6 m/ x1 q% v1 @
private int maxSize;/ i4 Y, @, q$ X4 o. y" v
" i* o6 u2 V4 r QueueImpl() { Z, w4 ]2 X: F j) Q' U0 J4 V
element = new Object[defaultSize];
( j5 b+ ]" Q: {; Y1 q maxSize = defaultSize;, C& D6 r) s6 Y$ P) @( i
front = 0;
( B; O& Y) Z+ `) I& ^- b! M rear = -1;5 Q, u- X5 F4 u( l. K5 a. i: V
}7 @, ^+ |4 ]: z& _* X
/ C' e" R4 B% @, R* @
QueueImpl(int size) {# y3 {/ s$ C. b6 M
element = new Object[size];
! w* D6 K$ `* a1 e maxSize = size;
* F# \. t7 y9 {9 ?. U4 | front = 0;7 I/ d8 f& ]- k I, k5 A+ r
rear = -1;4 u6 L" Y/ p. z: L+ v& C
}
" a% E# x0 O( H! _
( ^8 A4 C& r8 G @Override
, M$ a. j' }4 ?) K `& \2 Q8 G public int getMaxSize() {
* R$ Z& Q/ u2 E. S" V) Y+ q8 X7 P return maxSize;7 ~: l0 ~1 S# Z
}
8 C) L y8 y! G
! c: o. a' Z" @" ] @Override4 J- I0 ^2 u/ B$ q( p( d5 `
public void push(Object object) {
4 V$ ~+ F" R$ q //如果元素个数已经达到数组的最大个数,则进行扩容
& O0 |7 i4 A' U3 d2 a if (elementCount == maxSize) {
+ v$ Q6 }. U* @7 x3 r throw new ArrayIndexOutOfBoundsException("队列已满,请先进行出队");: ^2 |0 S" G0 f3 K S3 @% D& O
}
" L. c% d8 l: }2 T5 f element[++rear] = object;
: O, D3 K# J6 A. R8 s if (rear == element.length) {
, \- j0 s X4 A) s7 _3 O: i rear = -1;! x( |3 s' D' y/ L( P. S
}
- v. K; z E: K. \" H elementCount++;
. X2 G3 s$ s% _$ `( M9 x! I }
% \, y* \8 [6 q
% }9 B( F, Q) {8 Y' j0 V @Override
' P) s3 Y% z; {( ?8 S6 d4 L6 E: {; p public Object pull() {
: L8 r5 w8 v# h1 c- }6 M3 _% m if (elementCount == 0) {
8 _- C! P) Y& `$ ?# t3 }4 I5 M throw new ArrayIndexOutOfBoundsException("队列中无元素");
5 r/ Z0 P1 ?6 ]) i b8 J }
0 j/ m1 x; w/ h$ ]! H4 o+ B; W Object object = element[front];
9 t* ]8 t$ B5 N9 b element[front] = null;
2 S2 k; d3 y" ]6 j, ^4 w D4 a$ T front++;
9 t4 h+ S$ D/ D) ^% H+ D v elementCount--;
' ` N8 N j7 r, e2 E: P+ S //队列清空,队头队尾恢复初始值% S9 G. U; _* i/ g% z# y6 {4 q8 r
if (elementCount == 0) {% B% P4 Z5 [( u- ~4 L. ^. j9 M
front = 0;
6 _( X! f8 k W: ~ rear = -1;+ ~8 [! O$ l2 W
}
! Y8 F* B h/ c& m3 V3 x: l2 q return object;8 S: h& b7 q( A: a ~
}
" D* H+ O e8 T- @9 C- N( d$ m% r# j) J0 [ K3 p3 P1 C; _: N
@Override
! _7 z0 L: h# Y; r" N' ]3 |: k) a4 i public int getElementCount() {
! L; q9 `4 I$ r- h+ q$ _2 | return elementCount;9 ?, Y! A# s- ]4 u$ H+ s
}
, v% n3 j" W% w) K8 W) A- U* g! s1 W% p& Q) ^, }
@Override
, W" }. k* t! C* V _ public Object getFront() {- r0 O# F+ ?7 d+ W! \4 e9 b, \; l
if (elementCount == 0) {
' }: Y1 F }( o' s System.out.print("队头无元素");1 ]& \" c: Q7 j* Q8 v. q, x' a7 j
return null;
+ x. C0 I0 Y$ [ }
) Q. z: b: t! K6 t, E# [/ {0 m return element[front];
7 D2 Z% |( r, }2 p }% y5 w7 f. A+ i9 r8 |
* \0 A, }) H3 ?5 i @Override
" R) \0 o' v& q* t- ^. @ public Object getRear() {
1 H0 ~( ?: V; F; ^2 V( _6 J if (elementCount == 0) {4 X& f6 A% G' l
System.out.print("队尾无元素");3 G% }. Q& L! Y4 W+ T; j+ D
return null;
. y" K. b4 A% }. _2 l/ e. B }% C7 L* H0 r, ~/ F& @
return element[rear];0 b) f+ U3 ]* a( o. r. N* x
}1 }% i; @( e& C2 G8 F8 D* r
2 M2 d! L/ A7 |0 K5 P9 Z @Override! m9 K9 E8 Q7 p: t# C
public void traverse() {: `$ `: L* Z1 g# Z4 J$ [) K
if (elementCount == 0) {
% i: T1 C$ y9 B6 t8 e return;
9 e W' |6 V5 V4 L }4 ?+ w% a% g. H& h" o/ R
for (int i = front; i <= rear; i++) {
; Q: [! t/ f' F. S5 N System.out.print(element + ",");8 N& |" K& J0 ^( O& B( ~$ z4 `1 |2 x
}* a7 C( w3 H$ _% S9 D' {
System.out.println();
, a( G) d" v: r( V }
, H3 u: G' Q" a5 I9 Y}" L- j" w, S. }, o; `# C5 {
% {8 j6 D. S0 b8 l2 w* M, W) {! W4 \" k3 K$ }
3、队列的测试
" I+ S2 n! i/ G( i, T4 f' O% \5 ?public class QueueTest {
" t) _' ~- d6 z8 ^6 W4 r$ V/ M; V8 H public static void main(String[] args) {
" ^) Z4 x0 U7 B: q: s' B1 K( k7 n Queue queue = new QueueImpl();
X" r7 C2 c% W" W6 K$ ~. P# C: s/ a/ I m4 E
//获取队列大小, U. ~$ F4 @; ?+ g) y
System.out.println("队列中最大可放置元素:" + queue.getMaxSize());
K% p/ K& q4 l
2 u1 x- p. T; D, } //第一次入队列:压入1-154 f7 f3 m6 ?/ S; ?7 S* G& @
for (int i = 0; i < 16; i++) {
+ K: s5 t2 W+ \# k c4 } queue.push(i);7 B8 I5 p' J4 M& r- T$ G
}
1 i$ A( ?1 V. X9 }# i System.out.println("第一次入队后元素个数为:" + queue.getElementCount());: k3 G# H4 E2 |6 D4 {$ B
queue.traverse();+ @' Q/ v5 W2 \7 ]) K
System.out.println("队头:"+queue.getFront()+" 队尾:"+queue.getRear());
) E( {) U2 Q$ ] ]4 b+ \5 M
C6 G6 A5 U9 [6 g! d( z# o' T //第一次出队:取出0-15' D9 l- v. D0 |- r
for (int i = 0; i < 16; i++) {4 J& ^, R+ L) [' s7 U. D
queue.pull();+ q- j( o9 `8 h4 N
}- ?! ^' Z/ A1 Q# P, W B
System.out.println("第一次出队后元素个数为:" + queue.getElementCount());
9 s( m. T$ b4 q# t# r queue.traverse();2 n/ u9 K' J9 Z# M2 o/ S4 M
System.out.println("队头:"+queue.getFront()+" 队尾:"+queue.getRear());) @* B& v e$ p7 {; y
. { Y. N9 x9 ^ K
/ N z/ b, x/ |$ Y) N) E0 b //第二次入队列:压入16,31& D% v5 f" B8 L G/ G
for (int i = 16; i < 32; i++) {
! z( u1 w' U7 E! s. z$ ? queue.push(i);
, O; l' A$ H1 K2 k% \, Z }
# t5 c9 F' P+ G6 H! z" Y System.out.println("第二次入队后元素个数为:" + queue.getElementCount());
2 H' T! W+ W5 _, f8 [ queue.traverse();
% Q5 `( I/ M5 l' Y* K
" X+ T! _, n- n8 @
0 s4 i9 G/ e' o5 V& V9 o$ Z //第二次出队:取出16-31- t0 p8 r9 Q% o9 w# ^* m, k$ m
for (int i = 0; i < 16; i++) {
; e) K2 |/ i+ ^3 U/ k queue.pull();! ]$ A; Z7 M+ p3 o' d
}5 U( l# |1 G2 _* k: u
System.out.println("第二次出队后元素个数为:" + queue.getElementCount());1 ?) l4 C+ ^8 i# S, |( o0 z
queue.traverse();
( j; L- l, H9 W3 m) x3 d" Q; I( p; m, Q z- X( n8 Y
//空队列出队报错
/ H3 b+ O$ Y- I+ J3 z) w queue.pull();( O& z" n' o ?
/ N1 o; j+ r; P& s' v }/ n/ n7 l0 N2 c
}( b* I- d7 n5 U7 j# m4 B
- q3 d% u8 h( Y
% ?* j. k8 J5 k7 \# W, C, z2 |
* X9 C U% C# T% o$ V' k
3 O# a& v6 g9 x
( ?6 D& O. F L" i
8 q5 v5 f! ` j" n% @+ f3 p9 A4 z9 s! \0 u; U/ I3 T7 _
! j; c- r \" S7 g, Q. N9 \" T6 s
% V! E/ E7 m) b: }2 ?# w( H- t1 M& K3 l+ C7 _
6 L g8 E# A. G2 i6 |
9 K8 ]' ^8 N: f
: l1 w n7 U1 A0 h8 B& H$ f) b! y8 r& E5 F1 f9 ?
4 J5 n' R5 ]/ F) L4 I
————————————————* S, b% d( ?- l7 f5 ?) ^
版权声明:本文为CSDN博主「智慧zhuhuix」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。4 f2 _9 [, s. ^4 m
原文链接:https://blog.csdn.net/jpgzhu/article/details/105876785
& S9 n' D1 V9 @8 l5 a5 X* d8 A( a: T0 m( ~
: i& Z4 `- I, r# _% N4 `7 P |
zan
|