本文實(shí)例為大家分享了Java實(shí)現(xiàn)簡(jiǎn)單堆棧的具體代碼,供大家參考,具體內(nèi)容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/** * Created by Frank */ public class ToyStack { /** * 棧的最大深度 **/ protected int MAX_DEPTH = 10 ; /** * 棧的當(dāng)前深度 */ protected int depth = 0 ; /** * 實(shí)際的棧 */ protected int [] stack = new int [MAX_DEPTH]; /** * push,向棧中添加一個(gè)元素 * * @param n 待添加的整數(shù) */ protected void push( int n) { if (depth == MAX_DEPTH - 1 ) { throw new RuntimeException( "棧已滿,無法再添加元素。" ); } stack[depth++] = n; } /** * pop,返回棧頂元素并從棧中刪除 * * @return 棧頂元素 */ protected int pop() { if (depth == 0 ) { throw new RuntimeException( "棧中元素已經(jīng)被取完,無法再取。" ); } // --depth,dept先減去1再賦值給變量dept,這樣整個(gè)棧的深度就減1了(相當(dāng)于從棧中刪除)。 return stack[--depth]; } /** * peek,返回棧頂元素但不從棧中刪除 * * @return */ protected int peek() { if (depth == 0 ) { throw new RuntimeException( "棧中元素已經(jīng)被取完,無法再取。" ); } return stack[depth - 1 ]; } } |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。