gpt4 book ai didi

java - LIFO 堆栈上的序列

转载 作者:行者123 更新时间:2023-11-30 03:44:01 25 4
gpt4 key购买 nike

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

假设在 LIFO 堆栈上执行混合的入栈和出栈操作序列。插入按顺序插入数字 0 到 9;弹出窗口打印出返回值。以下哪一个输出序列可能发生?选择所有可能的。

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 后堆栈将有 2 8 并且你不能 pop() 2 8 之前。

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

关于java - LIFO 堆栈上的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26210484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com