C语言中二叉树中序遍历怎么执行?


本文摘自PHP中文网,作者coldplay.xixi,侵删。

C语言中二叉树中序遍历的方法:首先遍历左子树,并借助递归继续访问直到最左侧节点;然后访问根结点;最后遍历右子树,并借助递归继续访问直到最右侧节点即可。

C语言中二叉树中序遍历的方法:

中序遍历的规则是:左子树---> 根结点 ---> 右子树。所以我们访问节点的顺序需要变。

  • 我们直到递归是来回的过程,对于恰好有两个子节点(子节点无节点)的节点来说。只需要访问一次左节点,访问根,访问右节点。即可。

  • 而如果两侧有节点来说。每个节点都要满足中序遍历的规则。我们从根先访问左节点。到了左节点这儿左节点又变成一颗子树,也要满足中序遍历要求。所以就要先访问左节点的左节点(如果存在)。那么如果你这样想,规则虽然懂了。但是也太复杂了。那么我们借助递归。因为它的子问题和根节点的问题一致,只是范围减小了。所以我们使用递归思想来解决。

  • 那么递归的逻辑为:考虑特殊情况(特殊就直接访问)不进行递归否则递归的访问左子树(让左子树执行相同函数,特殊就停止递归输出,不特殊就一直找下去直到最左侧节点。)――>输出该节点―>递归的访问右子树.

1

2

3

4

5

6

7

8

public void zhongxu(node t)// 中序遍历 中序遍历:左子树---> 根结点 ---> 右子树

{

if (t != null) {

zhongxu(t.left);

System.out.print(t.value + " ");// 访问完左节点访问当前节点

zhongxu(t.right);

}

}

相关学习推荐:C视频教程

以上就是C语言中二叉树中序遍历怎么执行?的详细内容!

相关阅读 >>

c++ 判断本机是否有.net环境

return在c语言中是什么意思?

cc++有什么区别

“->” 在 c 语言什么意思?

continue在c语言中什么意思?

c语言六种基本语句是哪些?

c语言中for用法是什么?

c ++中accessor函数的特征

最新总结c语言中关于指针等相关理解和使用事宜

c语言比较三个数大小

更多相关阅读请进入《c》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...