如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()
A.e3,31,e4,e2 B.e2,e4,e3,e1 C.e3,e4,e1,e2 D.任意顺序
答案为什么选b???能通俗详细点解释不??
c语言的 进,关于栈的题目
答案:2 悬赏:0 手机版
解决时间 2021-03-21 04:01
- 提问者网友:萌卜娃娃
- 2021-03-20 06:28
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-03-20 07:04
栈是先进后出,答案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了。
全部回答
- 1楼网友:山君与见山
- 2021-03-20 07:59
你依次考虑出栈的元素 b,d,c,f,e,a 每一个元素出栈时,连同其本身在内,还有多少个元素在栈里面的,对应这些值的最大值,就是栈的至少容量。因为如果少于这个容量,栈将无法容纳每一个出栈元素所需要的空间。
这个例子中,这个最大值就是元素 d 出栈时,连同 d 本身在内,还有 a、c、d 3个元素在栈中(b已经出栈),所以,这个题目的答案就是 3
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯