搜索

一个函数里面两次递归该怎么理解?

gecimao 发表于 2019-04-13 13:01 | 查看: | 回复:

  但两个就不太懂了比如二叉树的建立跟遍历,代码倒是可以自己码出来,但看不太懂

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  注:posorder应该改为inorder更多追问追答追问能不能把实现的过程给我说下,递归这玩意我实在不是太懂,据说能用栈来理解。。。

  执行的顺序是什么?追答下面l表示lchild, r表示rchild, 向右缩进表示进入递归新一层,向左表示低一层都做完了,返回到本层。

  NULL表示假设传进来的指针是空,不会有下一层递归而是直接返回了。

  程序编译完成后为可执行代码,可执行代码将被装入内存中,一般地CPU将按程序设计的流程一一执行这些代码,执行到函数调用时(任何函数调用),将当前执行到的代码位置,寄存器数据等统统压入栈中,然后将函数参数也压入栈中,然后跳转到此函数的入口地址,执行函数体内的各条指令。当函数返回时,弹出函数参数(废弃),弹出压栈的寄存器数据等,弹出代码位置。

  执行函数前的压栈行为叫做“现场保护”,函数执行完后的弹栈行为叫做“现场恢复”,经过这样的保护和恢复,程序能顺利按编程者的逻辑运行。

本文链接:http://windsorflowers.net/diguixiangliangzhiling/42.html
随机为您推荐歌词
推荐文章

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部