请教一个栈序列的基础题
1. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( )。
A. 不确定 B. n-i+1 C. i D. n-i
2. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是( )。
A. i-j-1 B. i-j C. j-i+1 D. 不确定的
3. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是( )。
A. i B. n-i C. n-i+1 D. 不确定
三个题如上,答案是1b,2d,3d,但是为什么第1题选B,不选A呀?这三个题1与3是一样,答案却不一样呀?有哪位给解释下!
[解决办法]
题2、3没有对出栈个数进行限定,可能出现对空栈进行的出栈操作。
[解决办法]
1和3不一样,1是n第一个出,3是n最后一个出.
好比有一个那种彩票抽号用的圆桶,我们往里面按顺序放编号了的小球,
1->2->...->n
如果n最后一个出相当于在放n以前所有的球并没有被取出,那么就只能按倒序一个个出了,
如果n是最后一个出呢,那么情况就多了,我们可以放一个取一个,也可以放2个,取2个,总之很多,
这样顺序就不确定了,这个情况一共有球个数的指数种.