推和弹出整数堆叠,什么结果是不可能的



我正在尝试参加算法的在线课程,但我似乎无法理解它是如何工作的。(这不是家庭作业,只是免费在线课程中的一个问题(

有人能向我解释如何找到答案吗? 在练习结束时给出,但我不明白它是如何工作的。 提前感谢! :)

假设执行了(堆栈(推送和弹出操作的混合序列。推送按顺序推送整数 0 到 9;弹出窗口打印出返回值。以下哪个序列不会发生? (a( 4 3 2 1 0 9 8 7 6 5

(b( 4 6 8 7 5 3 2 9 0 1

(c( 2 5 6 7 4 8 9 3 1 0

(d( 4 3 2 1 0 5 6 7 8 9

(e( 1 2 3 4 5 6 9 8 7 0

(f( 0 4 6 5 3 8 1 7 2 9

(g( 1 4 7 9 8 6 5 3 0 2

(h( 2 1 4 3 6 5 8 7 9 0

正确答案:(b(、(f( 和 (g(。

如果按顺序推送数字,即使流行音乐是随机发生的,也有一些事情永远不会发生。考虑 (b(:

推 0, 1, 2, 3, 4, 弹出 4, 按 5, 6, 弹出 6, 按 7, 推 8, 弹出 8, 弹出 7, 弹出 5, 弹出 3, 弹出2, 按 9, 弹出 9.... 你不能弹出 0,因为那个挡住了。

其他错误答案也是如此。

相关内容

最新更新