一个堆栈的问题

chentony 2008-01-09 09:53:04
设将整数1,2,3,4,5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进行,则出栈序列不可能是:

A.23415 B.54132 C.23145 D.15432
答案是B请知道说明原因,多谢大家指教!
如果可以把ACD的原因说明最好,堆栈的操作是先进后出,且栈不为空1怎么可以不在最后出栈
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
llg84 2008-01-09
  • 打赏
  • 举报
回复
呵呵,ls已经说明了~
Metawolf 2008-01-09
  • 打赏
  • 举报
回复
1出来前不是空的。【出栈可以在任何时刻(只要栈不空)进行】 ,没有提到出来后,或者进去以前不能为空
chentony 2008-01-09
  • 打赏
  • 举报
回复
to llg84

出栈可以在任何时刻(只要栈不空)进行?

如果1出來的棧就已經為空了
光跃 2008-01-09
  • 打赏
  • 举报
回复
哦,看来我跟搂主一样没理解题目,哈哈
llg84 2008-01-09
  • 打赏
  • 举报
回复
A.1进2进2出3进3出4进4出1出5进5出
C.1进2进2出3进3出1出4进4出5进5出
D.1进1出2进3进4进5进5出4出3出2出

B.依次进栈又要5最先出来,那么肯定都进去了,按序进的必须倒序出,所以1不可能再中间出来
话说这是很基本的问题吧.......
光跃 2008-01-09
  • 打赏
  • 举报
回复
要用一个辅助栈STACKB完成STACKA的进出栈操作:
首先将12345依次压入STACKA中,然后出栈:

选项A: 将STACKA的543弹出并依次压入STACKB,然后取出STACKA中的2,取出STACKB中的3,取出STACKB中的4,取出STACKA中的1,取出STACKB中的5。

其他的应该明白了吧。
chentony 2008-01-09
  • 打赏
  • 举报
回复
呵呵,谢谢大家的指点,自己被出栈可以在任何时刻(只要栈不空)进行弄胡涂了。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧