首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++出栈的有关问题

2012-04-12 
c++出栈的问题已知进栈的顺序为6、5、4、3、2、1 问不合法的出栈是哪个?A:5、4、3、6、1、2B:4、5、3、1、2、6C:3、4、6、5、2

c++出栈的问题
已知进栈的顺序为6、5、4、3、2、1 问不合法的出栈是哪个?

A:5、4、3、6、1、2
B:4、5、3、1、2、6
C:3、4、6、5、2、1
D:2、3、4、1、5、6

这样的题目应该如何解答?

[解决办法]
先进后出,可以进一个出一个,也可以先进几个再出,这个时候最容易出问题,比如说A,先进6 5,然后5出栈,4进栈,4出栈,3进栈,3出栈,6出栈
[解决办法]
(这个时候出栈顺序是5、4、3、6,栈里没东西,还有2、1没进栈),现在要求的进栈顺序是2、1;那么出栈就不可能是,1、2,先进后出
[解决办法]
按照栈的定义推:
比如C:3、4、6、5、2、1

先出3说明此时栈:6 5 4 3
然后3,4都出栈,此时的栈:6 5
然后6出栈,此时5还没出栈,说明跟栈定义冲突

[解决办法]

探讨

根据先进后出,逐个选项排除

[解决办法]
答案是C
[解决办法]
C
楼上正解
[解决办法]
3、4、6、5、2、1
 这个是不对的。

6 5 4 3 进
3 4 出 此时栈中有6 5 只能先出5 不可能先出6的。


[解决办法]
答案是C但并不是最后是1的原因。。。。是因为6比5先出来了,但是很明显不是那种6进去后,5没进去6就出来了的情况。。。。

热点排行
Bad Request.