跟进出栈有关的题目,给我讲讲啊!

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:18:23
如果6个数据元素按a、b、c、d、e、f的顺序入栈,则以下哪种出栈顺序是不可能的?______
A、abdecf B、cbedaf C、acefbd D、adfecb

能说详细点最好了,把原因说的清楚点啊!!谢谢了!!

选C

一个选项一个选项考察,看哪个无法实现即可
对于A,可以用a进,a出,b进,b出……来实现,非常明显

对于B,可以用a进,b进,c进,c出,b出,d进,e进,e出,d出,a出,f进,f出。

对于C,首先a进,因为第一个出栈的也是a,因此a要马上出栈。堆栈是空的、
第二个出栈的是c,那么只能进b,c,然后出c。堆栈有一个b
第三个出栈的是e,那么只能进d,e,然后出e。此时堆栈是bd
的四个出栈的是f,那么只能进f,出f。此时堆栈还是bd
第五个出栈的是b,然而此时堆栈必须先出d才能出b,所以是无法实现先出b的。因此这个选项是错误的。

D也是可以实现的,就不说了

答案是C,C是不可能的出栈序列
首先,我把我的笔记借给胡珊了,所以,具体的定理证明我没有了.

这类问题的解法:根据各个选项进行逐一检查

若记进栈动作为P(PUSH),出栈动作为Q(POP)

则A、B、D的进出栈顺序为:

A.PQPQPPQPQQPQ

B.PPPQQPPQQQPQ

D.PQPPPQPPQQQQ

明白了吧,圆圆^_^