0

所以我正在关注普林斯顿大学通过 coursera 完成的这个算法课程。我正在做这个与堆栈有关的问题。答案让我感到困惑。感谢是否有人可以告诉我我在哪里出错了;

问题:假设在 LIFO 堆栈上执行混合的 push 和 pop 操作序列。推动按顺序推动字母 A 到 J;pops 打印出返回值。以下哪个输出序列可能出现?

正确答案 1:BEDCGAFIJH

解释 :当 G 被压入时,A 和 F 都还在堆栈中。因此,F 将在 A 之前弹出。

我的问题:如果 F 应该出现在 A 之前,那么这个答案不正确吗?

正确答案 2:BCEAIJHGFD

解释 :当 E 被压入时,A 和 D 都还在堆栈中。因此,D 将在 A 之前弹出。

我的问题:再次 D 应该在 A 之前吗?

感谢有人能告诉我我可能做错了什么。

4

1 回答 1

0

你是对的,这两个例子都不会发生,因为你解释的原因。您确定您阅读的答案正确吗?解释是为什么该输出不能发生,而不是为什么会发生。

于 2013-02-16T06:01:44.180 回答