目录
TheStack类
public class TheStack {
//定义一个Object类型的数组
//Object类型的数组任何类型元素都能够存储
//初始化栈的容量为10
private Object[] num = new Object[10];
//定义栈帧
private int StackIndex = -1;
//构造方法
public TheStack() {
}
//压栈
public void push(Object num) {
//栈容量为10,对应0-9,当栈帧指向9时,栈满无法入栈
if (StackIndex == 9) {
System.out.println("栈已满,无法入栈");
return;
//否则,栈帧+1,入栈成功
} else {
StackIndex++;
this.num[StackIndex]= num;
System.out.println( this.num[StackIndex]+"入栈成功,栈帧指向"+StackIndex);
}
}
//弹栈
public void pop() {
//栈帧指向小于0时栈内没有元素,不能进行弹栈
if (StackIndex < 0 ) {
System.out.println("栈已空,无法弹栈");
return ;
//否则,栈帧指向减一,弹栈成功
//如果先减一再弹栈,会出现异常
} else {
System.out.println("弹栈" + num[StackIndex]+"成功");
StackIndex--;
System.out.println("栈帧指向"+ StackIndex);
}
}
}
TestStack类
public class TestStack {
public static void main(String[] args) {
TheStack stack = new TheStack();
//第一次入栈
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
//第十一次入栈,此时无法入栈
stack.push(new Object());
//第一次弹栈
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
//第十一次弹栈,无法进行
stack.pop();
}
}
结果图