使用 jFrame 为我的项目执行此操作。
我的问题是,当我输入 first:1 、 Second: 2 、 third: 3
然后我单击了“查看堆栈”,问题显示[ 1 , 2 , 3 , 0 , 0 , 0 。 。 。 ]
我认为 View 应该是 [ 3 , 2 , 1 , 0 , 0 。 。 。 .]
我对推送的理解是什么。
使用的代码:
//全局变量
int[] myStack = new int [10];
int top = -1;
//按钮
if ( top == 9){
JOptionPane.showMessageDialog(null, "Stack Full!");
}else{
int val = Integer.parseInt(pushtxt.getText());
top++;
myStack[top] = val;
pushtxt.setText("");
}
}
//查看堆栈按钮
if (top == -1){
JOptionPane.showMessageDialog(null, "Stack Empty!");
}else{
viewtxt.setText("");
for (int x=0; x<=9; x++){
viewtxt.setText(viewtxt.getText()+" "+ myStack[x]);
}
}
最佳答案
我认为您误解了堆栈的工作方式。更具体地说,您用于显示堆栈的算法不正确。在您的情况下,您从堆栈的底部(其中 x=0)开始,然后向顶部(实际上,超出顶部,其中 x=9)。这就是为什么你的输出看起来是相反的(它也充满了你不应该打印的零)。
显示堆栈时,应从顶部 (x=2) 开始,逐渐向底部 (x=0) 移动。如果您这样做,那么输出将是正确的。
关于java - 我的 Push 功能出了什么问题?堆叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538353/