c语言的 进,关于栈的题目

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:24:14
如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()
A.e3,31,e4,e2 B.e2,e4,e3,e1 C.e3,e4,e1,e2 D.任意顺序

答案为什么选b???能通俗详细点解释不??

栈是先进后出,答案A中,出来e3表示压栈是e1,e2,e3,e3出来之后,栈里面有e1,e2,这时候无论怎样也不可能是e1的,因为e2还在里面。C中一样的道理,e3出来之后,e1是不可能在e2之前出来的。B中e2出来表明栈中有e1,之后e3,e4压栈,这个时候栈中是e1,e3,e4出栈的顺序就是e4,e3,e1了。