假设某个用列程序会进行一系列入栈和出栈的混合栈操作。入栈操作会将整数0到9按顺序压入栈;出栈操作会打印出返回值。下面哪种序列是不可能产生的?
A: 4 3 2 1 0 9 8 7 6 5
B: 4 6 8 7 5 3 2 9 0 1
C: 2 5 6 7 4 8 9 3 1 0
D: 4 3 2 1 0 5 6 7 8 9
E: 1 2 3 4 5 6 9 8 7 0
F: 0 4 6 5 3 8 1 7 2 9
G: 1 4 7 9 8 6 5 3 0 2
H: 2 1 4 3 6 5 8 7 9 0
先谈谈我自己的思路吧:
栈是个先进后出的数据结构,其次入栈时会将这些整数按照顺序压入,那么出栈时必定也是按照顺序出来的。因此E and A and D
可以直接排除了。
接下来我就楞B了..因为我觉得都不可能产生的。但又觉得题目应该没这么简单..
我是一枚刚学算法的菜鸟,还望各位大牛不吝指教。先在此谢过!
这应该是个程序题而非心算题。写个程序,两个参数,一个是0-9序列,一个是结果序列。然后按照结果序列把出入栈操作推演一遍