Nahida大约 2 分钟

定义

  1. 栈是限定只在表尾进行插入或删除操作的线性表
  2. 栈的尾端称为栈顶,头部称为栈底
  3. 栈通常被称为是后进先出(last in first out)表,简称 LIFO 表。

表示

顺序表示(顺序栈)

  1. 栈的顺序存储结构是利用一组地址连续的存储单元,依次存放自栈底栈顶的数据元素,设 指针top 指示栈顶的位置。
  2. 栈在使用过程中占用的空间难以估计,为了防止空间不足且尽可能节省空间,应当事先分配一个基本容量,然后在应用过程中,若栈空间不足,再进行逐段扩大
  3. 顺序栈主要有两个指针:栈底指针base和栈顶指针topbase在顺序栈中始终不变,因此base为NULL则表示栈结构不存在top一开始指向base,可以作为判断空栈的方法。非空栈中的栈顶指针始终在栈顶元素的下一个位置上。

初始化栈和按需扩容的实现:

追加元素:

获取栈顶元素:

应用

数制转换

输入一个非负十进制整数,输出等值的八进制数:

递归

栈的一个重要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列语句间接调用自己的函数,称为递归函数。

上次编辑于:
贡献者: Nahida