_栈和队列
栈与递归:求阶乘 主程序 main( ): fact(4) 参数传递 递归调用 结果返回 回归求值 fact(4): fact(3): fact(2): fact(1): fact(0): 1 直接定值为1 计算 4*fact(3) 计算 3*fact(2) 计算 2*fact(1) 计算 1*fact(0) 1 2 6 24 以主程序中调用FACT(4)为例: n: 4 控制链返回地址 第1次调用fact时的活动记录 x: 4 主程序main的活动记录 栈生长方向 栈生长方向 n: 4 控制链返回地址 第1次调用fact时的活动记录 x: 4 主程序main的活动记录 n: 3 控制链返回地址 第2次调用fact时的活动记录 计算阶乘时的运行栈 计算阶乘时的运行栈 栈生长方向 n: 4 控制链返回地址 第1次调用fact 时的活动记录 x: 4 主程序main 的活动记录 n: 3 控制链返回地址 第2次调用fact 时的活动记录 n: 2 控制链返回地址 n: 1 控制链返回地址 第3次调用fact 时的活动记录 第4次调用fact 时的活动记录 自由空间 1! = 1 2! = 2*1! = 2 3! = 3*2! = 6 4! = 4*3! = 24 栈与递归:Hanio Tower问题 源于印度的一个古老的
原创力文档

文档评论(0)