设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为( )。

admin2021-01-13  20

问题 设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为(    )。

选项 A、c d b a
B、c b d a
C、c d a b
D、c b a d

答案C

解析 本题考查数据结构基础知识。
栈的修改规则是后进先出。对于题目给出的元素序列,若要求c先出栈,此时a、b尚在栈中,因此这三个元素构成的出栈序列只能是c b a,而元素d可在b出栈之前进栈,之后b只能在d出栈后再出栈,因此可以得到出栈系列c d b a。同理,e可在a出栈之前进栈,从而得到出栈序列c b d a。若e在a出栈后入栈、出栈,则得到出栈序列c b a d。由于a不能在b出栈前出栈,因此不能得到c d a b。
转载请注明原文地址:https://kaotiyun.com/show/s7VZ777K
0

最新回复(0)