栈
- 栈(Stack):限定仅在一端进行插入和删除运算的线性表。形态像水杯,数据像水杯中的水。
操作方式:“先进后出(First In Last Out)” 或 “后进先出(Last In First Out)”。- 栈顶(Top):允许插入与删除的一端。
- 栈底(Bottom):不允许插入与删除的一端。
- 顺序栈的基本运算
顺序栈:用顺序存储结构来存储的栈。
- 基本运算:
-
入栈运算
在栈顶位置插入一个新元素。
步骤:- 修改指针,将栈顶指针加1(Top加1)。
- 在当前栈顶指针所指位置将新元素插入。
-
出栈运算
取出栈顶元素并赋给某个变量。
步骤:- 将栈顶指针所指向的栈顶元素读取后赋给一个变量。
- 将栈顶指针减1(Top减1)。
当栈顶指针为0(Top=0)时,说明栈空,这时将不能进行出栈运算。
-
读栈运算
将栈顶元素赋给一个指定的变量。栈顶指针不变。
当栈顶指针为0(Top=0)时,说明栈空,读不到栈顶的元素。
-
- 带链的栈
链栈:用链式存储结构来存储的栈。