栈实际上也是线性表,只不过是一种特殊的线性表。其特殊性在于栈的基本操作是线性表操作的子集,他们的操作受限于线性表,可称为限定性的数据结构。
栈(stack)是限定仅在表尾进行插入和删除操作的线性表,它是一种后进先出(Last in First out ,LIFO)的线性表
当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们就应该首选“栈”这种数据结构。
栈的特性
- 允许插入和删除的一段称为栈顶(top),另外一段称为栈底(bottom)。
- 不含任何数据元素的栈称为空栈。
- 栈的元素必须后进先出。
栈的操作
- 插入操作
栈的插入操作(Push),叫做进栈,也称压栈、入栈。