Advertisement

数据结构:二叉树层次遍历进阶

阅读量:

先前发布的一篇博客
数据结构——二叉树的层次遍历阅读完毕后,能够较为轻松地完成以下问题的实践

问题:

  1. 确定二叉树的最大宽度,即在所有层级中找出节点数量最多的那一层。
  2. 采用逐层遍历的方式对二叉树进行处理,以计算出树中度数为1的节点总数。

解决问题的思路:

  1. 函数int BiTree_height1(BiTree T)的主要作用是确定树的深度值;
  2. void levelOrder( BiTree T);该函数用于生成一个数组width[totalLevel],用以存储各层的宽度信息;
  3. void printNodeAtLevel(BiTree T,int level,int *width,int static_level);参数包括指向宽度数组的指针以及静态表示的层数(由于level在递归过程中会被修改,因此需要单独设定)函数内部负责统计各层节点的数量
  4. void levelOrder2(const BiTree T);该函数通过设置一个变量来计算单分支节点的数量;
  5. void printNodeAtLevel2(BiTree T,int level,int *single_branch);

核心代码段

复制代码
    int BiTree_he

全部评论 (0)

还没有任何评论哟~