目录
一、什么是栈?
栈是一种只能在同一端进行插入/删除操作的线性表。表中允许进行插入/删除操作的一端称为栈顶。栈顶的当前位置是动态的,可以用一个称为栈顶指针的位置指示器来指示。表的另一端称为栈底。当栈中没有元素时称为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为出栈或退栈。
栈的一大特点是 LIFO,即 Last In First Out。
抽象数据类型栈的定义如下:
数据对象: D = { a i ∣ 0 ≤ i ≤ n − 1 , n ≥ 0 } 数据关系: R = { r } r = { < a i , a i + 1 > ∣ a i , a i + 1 ∈ D , i = 0 , ⋯ , n − 2 } 基本运算: empty():判断栈是否为空 push(e):将 e 压入栈中 pop():取出栈顶元素 gettop():返回栈顶元素 \begin{aligned} &\text{数据对象:} D=\{a_i|0\leq i\leq n-1,n\geq0\} \\ &\text