队列是只允许再一端进行插入操作,而在另一端进行删除操作的线性表。
栈的定义
栈的定义
举例说明:弹夹式手枪,先放入的子弹在最后才能打出来,如果有一颗卡住了,那么后面的子弹就都打不了了。
先进后出的数据结构--栈。
栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称 LIFO 结构。
注意:
首先它是一个线性表,即前驱后继关系。这里的表尾是指栈顶,而不是栈底。
栈的特殊性:限制了这个线性表的插入和删除位置,它始终只在栈顶进行。栈底是固定的,最先进栈的只能在栈底。
栈的插入操作,叫做进栈,也称压栈、入栈。如图:
栈的删除操作,叫做出栈,也称弹栈。如图:
进栈出栈变化形式