
栈S最多能容纳4个元素,现有6个元素按A、B、C、D、E、F的顺序进栈,下列哪一个序列不是可能的出栈序列 A. C、B、E、D、A、F B. C、D、B、F、E、A C. A、D、E、C、B、F D. A、F、E、D、C、B
我们要根据栈的特性来判断哪一个出栈序列不可能发生。栈是一种后进先出(LIFO)结构,也就是说,最后进栈的元素必须先出栈。
栈S最多容纳4个元素。现在给定元素按顺序 A、B、C、D、E、F 进栈。
A、B、C、D、E、F 依次进栈。
C 先出栈,栈里剩下 A、B、D、E、F,符合栈的LIFO特性。
B 出栈,栈里剩下 A、D、E、F,符合LIFO。
E 出栈,这时栈里剩下 A、D、F。
D 出栈,栈里剩下 A、F。
A 出栈,栈里剩下 F。
最后 F 出栈。
这个序列是符合栈的LIFO特性的,所以是可能的。
A、B、C、D、E、F 依次进栈。
C 先出栈,栈里剩下 A、B、D、E、F。
D 出栈,栈里剩下 A、B、E、F。
B 出栈,栈里剩下 A、E、F。
现在栈里有 A、E、F 还没出栈,但要求 F 先出栈。F 必须在栈顶才能出栈,这个不可能,违反了栈的LIFO特性。
所以这个序列不可能发生。
A、B、C、D、E、F 依次进栈。
A 先出栈,栈里剩下 B、C、D、E、F。
D 出栈,栈里剩下 B、C、E、F。
E 出栈,栈里剩下 B、C、F。
C 出栈,栈里剩下 B、F。
B 出栈,栈里剩下 F。
最后 F 出栈。
这个序列符合栈的LIFO特性,所以是可能的。
A、B、C、D、E、F 依次进栈。
A 先出栈,栈里剩下 B、C、D、E、F。
F 出栈,栈里剩下 B、C、D、E。
E 出栈,栈里剩下 B、C、D。
D 出栈,栈里剩下 B、C。
C 出栈,栈里剩下 B。
最后 B 出栈。
这个序列符合栈的LIFO特性,所以是可能的。
选项 B (C、D、B、F、E、A)不是可能的出栈序列。