一道简单与栈有关的 c语言习题,希望解释哈原因,我是初学者。在线等……
1.若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是()A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1...
1.若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是( )
A.1,4,3,2 B.2,3,4,1 C.3,1,4,2 D.3,4,2,1 展开
A.1,4,3,2 B.2,3,4,1 C.3,1,4,2 D.3,4,2,1 展开
3个回答
展开全部
首先你要明白栈的特性:就是先进后出,我们来分析选项:
A,先进1再出1,然后进2,3,4,再出4,3,2,所以出栈的顺序为1,4,3,2
B,先进1,2,出2,进3出3,进4出4,最后出1,所以出栈顺序为2,3,4,1
D,先进1,2,3,出3,进4,出4,再出2,1,所以出栈顺序为3,4,2,1
不可能的是C。
如果第一个出来的是3,那么首先要把3放进去,按进栈顺序,则先放1,2,3,然后出3,此时,选项里给的第二个出栈的元素是1,但是我们知道1比2先入栈的,2没有出栈之前,1是不可能出栈的
所以选C。
A,先进1再出1,然后进2,3,4,再出4,3,2,所以出栈的顺序为1,4,3,2
B,先进1,2,出2,进3出3,进4出4,最后出1,所以出栈顺序为2,3,4,1
D,先进1,2,3,出3,进4,出4,再出2,1,所以出栈顺序为3,4,2,1
不可能的是C。
如果第一个出来的是3,那么首先要把3放进去,按进栈顺序,则先放1,2,3,然后出3,此时,选项里给的第二个出栈的元素是1,但是我们知道1比2先入栈的,2没有出栈之前,1是不可能出栈的
所以选C。
展开全部
C
栈有先进后出的特点。
A:1 进栈,出栈;2,3,4进栈,出栈;结果:1,4,3,2;
B:1,2进栈,2出栈;3进栈,3出栈;4进栈,4出栈;1出栈;结果:2,3,4,1
D:1,2,3进栈,3出栈;4进栈,4出栈;2出栈,1出栈;结果:3,4,2,1;
C错!
栈有先进后出的特点。
A:1 进栈,出栈;2,3,4进栈,出栈;结果:1,4,3,2;
B:1,2进栈,2出栈;3进栈,3出栈;4进栈,4出栈;1出栈;结果:2,3,4,1
D:1,2,3进栈,3出栈;4进栈,4出栈;2出栈,1出栈;结果:3,4,2,1;
C错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案:C
解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1、2,由于1先于2进栈,所以它不可能在2之前出栈,故选项C这种出栈序列是不可能的。
解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1、2,由于1先于2进栈,所以它不可能在2之前出栈,故选项C这种出栈序列是不可能的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询