阅读量: 133 编辑

栈(stack)是只能在某一端插入和删除元素的线性表。

栈的实现算法可以用顺序表(数组),也可以用链表。(实现的编程算法在提高级课里会讲)。

通常将插入、删除的一端称为栈顶(top),将另一端称为栈底 (bottom),将不含元素的空表称为空栈。

类似于洗盘子,先洗的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件的取。放和取都在顶部进行,底部一般是不动的。

一、栈的特点

  • 插入元素称为进栈(PUSH),删除元素则称为出栈(POP)。

  • 栈是一种后进先出(LIFO)线性表。

  • 一个栈可以用定长为 n 的数组 S 表示,比如 S=(a1, a2, ...,an)。如果元素是按照a1、a2... 顺序入栈,那么栈底元素就是 a1,栈顶元素就是 an。出栈的顺序,正好是反过来的,也就是 an 先出,其次是 an-1,最后是 a1

  • 栈元素的入栈和出栈是灵活的,不是必须所有元素都入栈了再出栈。比如 a,b,c 三个元素出栈顺序可以是 a,b,c;也可以是 b,c,a;但不可能是 c,a,b 。

我们可以用一个栈指针 top 指向栈顶。若top = -1,表示栈空;top=n-1时栈满;入栈时 top+1,出栈时 top-1。

二、初始化为4个元素大小栈

1581581718257696.png

爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司