第3章栈与队列-105 - v2.pptVIP

  • 1
  • 0
  • 约3.66千字
  • 约 105页
  • 2017-07-23 发布于河南
  • 举报
第3章栈与队列-105 - v2

第3章 栈和队列;主要内容; 1. 掌握栈和队列类型的特点,并能在相应的应用问题中正确选用它们。;问题提出; 在各种程序设计语言中都有子程序(或称函数、过程)调用功能。而子程序也可以调用其它的子程序,甚至可以直接或间接地调用自身,这种调用关系就是递归。下面以求阶乘的递归方法为例,来分析计算机系统是如何处理这种递归调用关系的。 ;求n!的递归方法的思路是: 相应的C语言函数是: float fact(int n) {float s; if (n= =0||n= =1) s=1; else s=n*fact(n-1); return (s); } 若求5!,则有 main() { printf(“5!=%f\n”,fact(5)); } ;主函数 mani() printf(“fact(5)”);计算机系统处理上述过程时,其关键是要正确处理执行过程中的递归调用层次和返回路径,也就是要记住每一次递归调用时的返回地址。在系统中是用一个线性表动态记忆调用过程中的路径,其处理原则为: (1)在开始执行程序前,建立一个线性表,其初始状态为空。 (2)当发生调用(递归)时,将当前的调用的返回点地址插入到线性表的末尾; (3)当调用(递归)返回时,其返回地址从线性表的末尾取出。 ;概述;1. 栈的定义与基本运算;1.1 栈的定义; 根据栈定义,每次进栈的元素都被放在原栈顶元

文档评论(0)

1亿VIP精品文档

相关文档