汉诺塔递归工作栈执行情况.pptxVIP

  • 4
  • 0
  • 约小于1千字
  • 约 10页
  • 2022-10-22 发布于上海
  • 举报
汉诺塔递归工作栈执行情况会计学递归调用的内部实现原理第1页/共10页(2)在执行返回操作时,内部实现如下:a. 若函数有引用型形参或者返回值,将其值保存到回传变量中。b. 从栈顶取出返回地址,并退栈(同时撤掉被调层局部变量和形参)。c.按返回地址返回。d.在返回后执行如此操作:若函数有引用型形参或者返回值,从回传变量中取出所保存的值并传送到相应的实参或者位置上。第2页/共10页第3页/共10页第4页/共10页第5页/共10页递归的模拟第6页/共10页(1)设置一个栈(不妨用S表示),并且开始时将其置为空。(2)在递归函数入口处设置一个标号(不妨设为L0)。(3)对递归函数中的每一处递归调用,用以下几个等价操作来替换:a. 保留现场:开辟栈顶存储空间,用于保存返回地址(不妨用Li,i=1,2,3,...)和调层中的形参和局部变量的值。b. 为被调层准备数据:计算实参的值,并赋给对应的形参。c. 转入执行,即执行goto L0。d. 在返回处设一个标号Li( i=1,2,3,...),并根据需要设置以下语句:若函数有引用型形参或者返回值,从回传变量中取出所保存的值并传送到相应的实参或者代入表达式中。递归的模拟第7页/共10页(4)对于返回语句,可用以下几个等价操作来替换:a. 回传数据:若函数有引用型形参或者返回值,将其值保存到回传变量中。b. 恢复现场:从栈顶取出返回地址(不妨保存到

文档评论(0)

1亿VIP精品文档

相关文档