若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现?
B. 2,1,5,4,3
C. 4,3,1,2,5
D. 2,3,5,4,1
不是要编程,我只想知道为什么选C,请详细解释以下,我同学说1不可能在2前面出栈这样说对不对?我不懂,求解释 展开
答案是C。
根据栈的后进先出的性质,栈顶元素可能是1,2,3,4,5也就是出栈序列的第一个元素可能为1,2,3,4,5对于5,4,3,1,2,我解释下,其他可以类推:
若想3先出栈,那么必须1和2已经进栈,然后3进栈,3再出栈(序列:3),而【此时栈的栈顶元素】为2,所以第二个出栈的元素不可能是1,而只能是2,所以此时的出栈序列必为:321
以此类推,出栈次序不可能出现C.4,3,1,2,5
出栈顺序所有可能:
12345,12354,12435,12543,13245,13254,14325,15432
21345,21435, 21543,23145,23154,23415,23451,23541,24315,24351,24531 25431
32145 32154 32415 32451 32541 34215 34251 34521 35421
43215 43251 43521 45321
54321
重点:五个元素可以不是一次性进栈、一次性出栈。
A:是五个元素一次性进栈,即1,2,3,4,5进栈。然后一次性出栈即5,4,3,2,1。可能
B:先让1,2进栈,然后出栈即2,1;再然后让3,4,5进栈,出栈为5,4,3;即总出栈顺序为2,1,5,4,3。可能
D:先让1,2进栈,然后出栈2;再让3进栈,又让3出栈;让4,5进栈,让后出栈剩余元素5,4,1;即总出栈顺序为2,3,5,4,1。可能
C:要满足题目条件1,2,3,4,5顺序进栈,根据出栈顺序先为4,3,则剩下三个元素的出栈顺序可能性有:215,521。即以4,3开头的总出栈的可能有:43215、43521。不可能
选C
C错的原因是因为4,3先出来的,表示1刚开始没有出来,所以1不可能比2先出来。。