Java 后进先出堆栈上的序列

Java 后进先出堆栈上的序列,java,data-structures,lifo,Java,Data Structures,Lifo,我正在准备期中考试,我需要帮助回答这个问题: 假设在后进先出堆栈上执行推送和弹出操作的混合序列。按顺序推送数字0至9;pops打印出返回值。以下哪种输出顺序可能发生?选择所有可能的选项 1 2 5 4 3 6 0 9 8 7 6 5 4 3 2 1 0 7 8 9 4 6 8 7 5 3 2 9 0 1 0 1 5 6 4 3 7 9 2 8 0 2 4 1 6 7 5 9 8 3 我相信答案是: 6 5 4 3 2 1 0 7 8 9 我说得对吗?提前谢谢你 第一个是可能的,顺序是

我正在准备期中考试,我需要帮助回答这个问题:

假设在后进先出堆栈上执行推送和弹出操作的混合序列。按顺序推送数字0至9;pops打印出返回值。以下哪种输出顺序可能发生?选择所有可能的选项

1 2 5 4 3 6 0 9 8 7

6 5 4 3 2 1 0 7 8 9

4 6 8 7 5 3 2 9 0 1

0 1 5 6 4 3 7 9 2 8

0 2 4 1 6 7 5 9 8 3
我相信答案是:

6 5 4 3 2 1 0 7 8 9

我说得对吗?提前谢谢你

第一个是可能的,顺序是:

push(0);
push(1);
pop();
push(2);
pop();
push(3);
push(4);
push(5);
pop();
pop();
pop();
push(6);
pop();
pop();
push(7);
push(8);
push(9);
pop();
pop();
pop();
第二种方法也可以使用顺序:

push(0);
push(1);
push(2);
push(3);
push(4);
push(5);
push(6);
pop();
pop();
pop();
pop();
pop();
pop();
pop();
push(7);
pop();
push(8);
pop();
push(9);
pop();
第三个是不可能的,因为在打印
9
之后,堆栈将包含
0 1
pop()
将为您提供
1
而不是
0

第四个也是不可能的,因为在打印
9
之后,堆栈将具有
28
,并且您不能在
8
之前
pop()
2

第五个也是不可能的,因为打印后4个堆栈将包含
13
,并且
3
将首先弹出