首页后端开发ASP.NETC语言中二叉树中序遍历怎么执行?

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

时间2024-01-31 23:20:03发布访客分类ASP.NET浏览721
导读:收集整理的这篇文章主要介绍了C语言中二叉树中序遍历怎么执行?,觉得挺不错的,现在分享给大家,也给大家做个参考。c语言中二叉树中序遍历的方法:首先遍历左子树,并借助递归继续访问直到最左侧节点;然后访问根结点;最后遍历右子树,并借助递归继续访问...
收集整理的这篇文章主要介绍了C语言中二叉树中序遍历怎么执行?,觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

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

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

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

public void zhongxu(node t)// 中序遍历 中序遍历:左子树--->
     根结点 --->
 右子树{
if (t != null) {
    zhongxu(t.left);
    System.out.PRint(t.value + " ");
    // 访问完左节点访问当前节点zhongxu(t.right);
}
}
    

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

以上就是C语言中二叉树中序遍历怎么执行?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

二叉树

若转载请注明出处: C语言中二叉树中序遍历怎么执行?
本文地址: https://pptw.com/jishu/594612.html
JS实现百度搜索框 Nodejs 数组的队列以及forEach的应用详解

游客 回复需填写必要信息