java - 我的 Push 功能出了什么问题?堆叠

标签 java

使用 jFrame 为我的项目执行此操作。

我的问题是,当我输入 first:1Second: 2third: 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/

相关文章:

java - 设计问题: Should UI layer worry about it's backend?

java - Spring Boot 覆盖其他应用程序文件中的属性

java - 验证电子邮件地址是否包含 "@"和 "."

java - 按钮可能产生空指针异常(Android Studio)

java - Quartz 在特定时间启动并以特定时间间隔运行

java - hibernate 查询异常 : could not resolve property in spring petclinic sample application

java - Java 中的无限 While 循环

java - 使用 JNA 创建 COM 对象的对象,我没有 .class

java - ScheduledExecutorService 仅使用 switch 语句执行一次

java - 如何在java项目中导入com.android.camera包