大话数据结构(二)| 栈和队列
本文主要介绍栈和队列。
关键词:数据结构
栈的定义
栈(stack)是限定仅仅在栈尾进行插入和删除操作的线性表。
- 允许插入和删除的一端称为栈顶
- 另一端被称为栈底
- 不含任何元素的栈称为空栈
- 栈被称为后进先出(LIFO,Last In First Out)的线性表
- 栈的插入操作叫做进栈,栈的删除操作叫做出栈
进栈出栈变化形式
最先进栈的元素不一定最后出栈。
栈对线性表的插入和删除的位置进行了限制,并没有对元素进出的时间进行限制。在不是所有元素都进栈的情况下事先进入的元素也可以出栈,只要保证栈顶元素出栈即可。
举例:假设有三个元素1、2、3依次进栈,出栈次序如何?
- 1、2、3进,3、2、1出。出栈次序为321。
- 1进,1出,2进,2出,3进,3出。此时出栈次序为123。
- 1进,2进,2出,1出,3进,3出。此时出栈次序为213。
- 1进,1出,2进,3进,3出,2出。此时出栈次序为132。
- 1进,2进,2出,3进,3出,1出。此时出栈次序为231。
不可能出现312这样的答案,因为进栈的顺序是123,因此2一定先于1出栈。
抽象数据类型
1 | DATA |