模拟卷 数据结构 入栈出栈序列 选择题
第 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 可能。 >