顺序栈和链式栈
1. 基本概念
栈(stack)是一种操作受限的线性数据结构。栈的特点是:先进后出、后进先出。
栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
我们把允许插入和删除的一端叫做栈顶(top),另一端叫做栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称 LIFO 结构。
1.1 栈的操作
- 栈的插入操作,叫做进栈,也称压栈、入栈。
- 栈的删除操作,叫做出栈,也叫作弹栈。
1.2 栈的应用场景
栈的特点是:先进后出,后进先出,在实际应用中经常用栈来实现回溯。
回溯就是返回的意思。例如我们要实现一个走迷宫的程序,无论迷宫那么复杂,从拓扑上来 讲,越复杂的迷宫只是分支越多而已,我们可以用穷举法去遍历不同的分支,一旦遇到死胡同就回溯到上一个岔路口,然后再去遍历下一个分支。