数据结构--栈和队列

栈和队列也是线性表,其特殊性在于它们的基本操作是线性表操作的子集,它们是操作受限制的线性表。

栈:限定只能在表尾(栈顶top)进行插入或删除操作的线性表。

应用:

  1. 数制转换
  2. 括号匹配的检验
  3. 行编辑程序
  4. 迷宫求解
  5. 表达式求值

栈与递归的实现

在高级语言编制的程序中,调用函数和被调用函数之间的链接以及信息交换需要通过栈来进行。

通常,一个函数在运行期间调用另一个函数时,在运行被调用函数之前,系统需要做三件事

  • 将所有的实参、返回地址等信息传递给被调用函数保存
  • 为被调用函数的局部变量分配存储区
  • 将控制转移到被调用函数的入口

而从被调函数返回调用函数之前,系统也要完成三件事

  • 保存被调函数的计算结果
  • 释放被调函数的数据区
  • 依照被调函数保存的返回地址将控制转移到调用函数
原文地址:https://www.cnblogs.com/k-q-l/p/4612653.html