在java解释中弹出堆栈[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java解释中弹出堆栈[关闭]相关的知识,希望对你有一定的参考价值。

下面给出的代码是堆栈的实现。在它的pop函数中它不会返回顶部元素而不是顶部元素

      public class MyStack {
      private int maxSize;
      private long[] stackArray;
      private int top;

      public MyStack(int s) {
      maxSize = s;
      stackArray = new long[maxSize];
      top = -1;}
      public void push(long j) {
      stackArray[++top] = j;}

      public long pop() {
      return stackArray[top--];}

      public boolean isEmpty() {
      return (top == -1);}

      public boolean isFull() {
      return (top == maxSize - 1);}

      public static void main(String[] args) {
      MyStack theStack = new MyStack(10); 
      theStack.push(10);
      theStack.push(20);
      theStack.push(30);
      theStack.push(40);
      theStack.push(50);
      theStack.pop();

      while (!theStack.isEmpty()) {
      long value = theStack.pop();
      System.out.print(value);
      System.out.print(" ");}
      System.out.println("");}}
答案

没有; top--的意思是:从顶部减去1,但这个表达式解析为top在递减之前所持有的。所以:

int x = 5; System.out.println(x--); System.out.println(x);将打印5然后4

您粘贴的代码使用top作为指示符指向最顶层的元素,这就是当堆栈为空时top为-1的原因。这有点不正统(它们都会有点清洁,top只会匹配堆栈的大小,如果你写的那样top指向第一个空闲位置),但这只是一个风格问题。

以上是关于在java解释中弹出堆栈[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

没有调用 onresume 的弹回堆栈

Java Stack - 如何从堆栈中弹出()和推送()多个元素?

从后台堆栈恢复片段时的 savedInstanceState

从堆栈中弹出后重新出现 UITableViewCellSeperator 的问题

为啥从导航堆栈中弹出视图时键盘不显示?

有没有办法找出视图控制器是不是从导航堆栈中弹出?