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还没出栈,说明跟栈定义冲突
[解决办法]