【问题标题】:Stack: The terminlogy and example堆栈:术语和示例
【发布时间】:2018-06-14 21:35:12
【问题描述】:

对于这个简单的问题,我需要按顺序查找 stack1 的值(如果有)。说到堆栈,原则是LIFO(后进先出)或FILO(先进后出)。使用堆栈的原因是为了反转数据,并以相反的顺序显示。

Stack<Integer> stack1 = new Stack<Integer>();
stack1.push (2);
stack1.push(5);
stack1.push (stack1.pop() - stack1.pop());
stack1.push(8);

上面的问题让我想到,如果我们用这个原理,答案应该是:8,3,5,2

8 是最后一个值作为开始,然后下一个值是 3,取 5 和 2(“pop”是“head”处的删除)。然后接下来的两个值是 5 和 2。这是正确的答案,还是我得到了错误的答案?

【问题讨论】:

    标签: stack


    【解决方案1】:

    栈 stack1 = new Stack(); []

    stack1.push(2); [2]

    stack1.push(5); [2,5]

    stack1.push (stack1.pop() [2] - stack1.pop() [] ); [3]

    stack1.push(8); [3,8]

    【讨论】:

      【解决方案2】:

      堆栈是 LIFO(后进先出)。从你输入的第一个元素的角度来看。你也应该看看what is the basic difference between stack and queue?

      对于示例,答案是 8 和 3,只是因为当您将 3 计算为 stack.pop() - stack.pop() 时,您从堆栈中删除了 5 和 2,因此它们将不再存在。

      【讨论】:

      • 啊,好吧。感谢您的输入。我将检查堆栈和队列的差异。
      猜你喜欢
      • 2011-09-25
      • 2021-05-02
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多