Stack:terminlogy和示例

时间:2018-01-05 04:56:32

标签: stack

对于这个简单的问题,我需要找到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.这是正确的答案,还是我得到了错误的答案?

2 个答案:

答案 0 :(得分:0)

Stack是一个LIFO(后进先出)。从您放入的第一个元素的角度来看它。您还应该检查what is the basic difference between stack and queue?

对于这个例子,答案是8和3只是因为当你计算3为stack.pop() - stack.pop()时你从堆栈中删除了5和2,所以它们不再存在了。

答案 1 :(得分:0)

Stack 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]