栈是一种重要的线性结构,可以这样讲,栈是前面所讲过的线性表的一种具体形式。
栈的最大特点就是后进先出。(就像子弹一样,最后进的子弹,最先出枪口)
栈的定义
官方定义:栈(Stack)是一个后进先出的线性表,它要求只在表尾进行删除和插入。
简单的理解:所谓的栈,其实也就是一个特殊的线性表(顺序表、链表),但是它在操作上有一些特殊的要求和限制:
- 栈的元素必须“后进先出”;
- 栈的操作只能在这个线性表的表尾进行。
——注:对于栈来说,这个表尾称为栈的栈顶(top),相应的表头称为栈底(bottom)。
栈的插入和删除操作
栈的插入操作(Push),叫做进栈,也称为压栈,入栈。类似子弹放入弹夹的动作。
栈的删除操作(Pop),叫做出栈,也称为弹栈。如同弹夹中的子弹出夹。