线性数据结构
线性数据结构以维持某种形态和操作限制为代价,换取性能优化。
栈
栈是一种仅限定在表尾插入和删除操作的线性表,将操作端称之为栈顶,另一端称之为栈底。栈实现了一种先进后出(last-in,first-out,LIFO)的策略,基本操作包括:入栈、出栈、取栈顶元素等。
C++的STL标准模板库提供了栈容器,定义在头文件stack
中。对于stack
类型的变量stk
,基本操作如下:
- 最先进栈的元素,是不是只能最后出栈?
- 栈对线性表的插入和删除的位置进行了限制,并没有对元素进出的时间进行限制,也就是说,在不是所有元素都进栈的情况下,进去的元素也可以出栈,只要保证是栈顶元素出栈就可以。
如果有3个整数1、2、3依次入栈,则有哪些出栈次序?
- 第一种:1进,2进,3进,3出,2出,1出,出栈次序为321
- 第二种:1进,1出,2进,2出,3进,3出,出栈次序为123
- 第三种:1进,2进,2出,