1.先导知识:栈是什么?
- 栈的定义:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
- 简而言之,栈是一种先进后出的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。
2.出栈顺序题
- 递增顺序入栈,你也可以考虑成递减,或者单纯的A、B、C、D…入栈,分析思路一致。
2.1 递增顺序入栈类型
- 原题:设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是? (A)
A.3 2 1 5 4
B.5 1 2 3 4
C.4 5 1 3 2
D.4 3 1 2 5
分析:栈的输入按照递增顺序,按照先进先出的规则,假设中途入栈过程没有出栈的数据,那么最终出栈时为5、4、3、2、1,是递减的。与输入的递增顺序截然相反!