c语言实现二叉树的遍历算法

二叉树是一种常用的树结构,它的每个节点最多只有两个子节点。二叉树的遍历分为:前序遍历、中序遍历、后序遍历以及层序遍历四种方式

  1. 前序遍历:先访问二叉树的根节点,再访问左子树,最后访问右子树。递归的实现方式如下:


    前序遍历
  2. 中序遍历:先访问二叉树节点的左子树,再访问二叉树节点,最后访问二叉树右子树。递归的实现方式如下:


    中序遍历
  3. 后序遍历:先访问左子树,再访问右子树,最后访问节点。其递归实现如下所示:


    后序遍历
  4. 在每个递归算法中,递归结束条件为判断节点是否为空。当节点为空时,递归结束。
    三种遍历算法中,唯一区别就是输出当前节点的时机顺序不同。


    三种遍历注意点以及区别
  5. 层序遍历:逐层遍历,输出二叉树中每一层数据。要实现层序遍历,我们不仅要输出当前节点的值,还需要保存节点的左右子树指针,以便输出下一层。


    层序遍历
  6. 在进行层序遍历时,记录当前层节点个数以便循环结束。如果当前节点左右子树不为空,则添加到数组中,以便下一循环中遍历。


    层序遍历
注意事项
  • 递归遍历注意处理遍历结束条件:节点为空
  • 层序遍历时需要保存下一层待遍历节点指针
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容