案例出自于:java编程参考官方教程 130页
package com.chinadays.learn;
public class Stack {
private int stack[] = new int[10];
int tos;
public Stack() {
super();
this.tos = -1;
}
void push(int item) {
if (item >= 9)
System.out.println("Stack is full!");
else
stack[++tos] = item;
}
int pop() {
if (tos < 0) {
System.out.println("Stack underflow");
return 0;
} else
return stack[tos--];
}
}
使用方法:
package com.chinadays.learn; public class TestStack { public static void main(String[] args) { Stack st1 = new Stack(); Stack st2 = new Stack(); for (int i = 0; i < 10; i++) st1.push(i); for (int i = 0; i < 20; i++) st2.push(i); for (int i = 0; i < 10; i++) System.out.println(st1.pop()); for (int i = 0; i < 20; i++) System.out.println(st2.pop()); } }
运行结果:
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
Stack is full!
8
7
6
5
4
3
2
1
0
Stack underflow
0
8
7
6
5
4
3
2
1
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
Stack underflow
0
本文详细介绍了使用Java实现栈数据结构的方法,包括push和pop操作的代码实现,并通过具体示例展示了栈的使用过程和可能出现的错误情况,如栈满和栈下溢。

678

被折叠的 条评论
为什么被折叠?



