第 1 题
假设栈的容量为 3,入栈的序列为 1,2,3,4,5,则出栈的序列可能为( )。
A. 3,2,1,5,4 B. 1,5,4,3,2 C. 5,4,3,2,1 D. 4,3,2,1,5
[tag_link]
正确答案:A
栈的容量为 3,入栈序列固定为 1,2,3,4,5。
出栈序列必须符合栈的后进先出规则,且受容量限制。
对于选项 A(3,2,1,5,4):
- 先入栈 1,2,3(栈满),出栈 3,2,1,栈空。 >
- 再入栈 4,入栈 5,出栈 5,4。 > 操作过程中栈内元素数始终不超过 3,且符合出栈序列,因此可能。 >
对于选项 B(1,5,4,3,2):
- 出栈 1 后,需出栈 5,但 5 尚未入栈。 > 入栈 2,3,4 后栈满,无法直接入栈 5; > 若先出栈元素则破坏序列顺序。 >
- 要使 5 先出栈,需在 5 入栈时栈中包含 4,3,2,但容量仅为 3,无法同时容纳 4 个元素,因此不可能。 >
对于选项 C(5,4,3,2,1):
- 需先出栈 5,但 5 最后入栈。 > 入栈 1,2,3 后栈满,入栈 4 需先出栈元素,而出栈会破坏序列以 5 开始,因此不可能。 >
对于选项 D(4,3,2,1,5):
- 需先出栈 4,但入栈 1,2,3 后栈满,入栈 4 需先出栈元素,而出栈会导致序列首元素不为 4,因此不可能。 >
综上,只有选项 A 可能。 >