使用数组实现Java堆栈数据结构
我正在尝试使用堆栈实现推送和弹出操作 下面是代码使用数组实现Java堆栈数据结构,java,data-structures,Java,Data Structures,我正在尝试使用堆栈实现推送和弹出操作 下面是代码 public class StackMain { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub StackDS obj = new StackDS(); obj.push(10); obj.push(20); obj.
public class StackMain {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
StackDS obj = new StackDS();
obj.push(10);
obj.push(20);
obj.push(30);
obj.push(40);
obj.push(50);
System.out.println("Before pop");
obj.print();
System.out.println();
System.out.println("After pop");
obj.pop();
obj.print();
}
}
这里,我原来的数组大小是5。插入5个元素后,top=5。
因此,我尝试预先递减top变量
以使用pop操作检索值。
因此,当我使用arr[--top]
执行pop操作时,它实际上是在获取4元素(本例中为40)
。但是,实际上它应该获取第5个元素(50)。
我不确定我在这里做错了什么。
请查找eclipse调试器结果
每次您
pop
@StephenC-更改为arr[top]=0后,您似乎将top
递减两次;它工作得很好。谢谢。--top
也将更新top
的值!要么使用top-1
获得“无副作用”评估,要么使用--top
一次,然后再使用top
。在更改为arr[top]=0后,每次pop
@StephenC-时,您似乎要递减top
两次;它工作得很好。谢谢。--top
也将更新top
的值!使用top-1
获得“无副作用”评估,或使用--top
一次,然后再使用top
。