第五章学习小结

一、小结

1.二叉树

  定义与性质:

  (1) 二叉树有五种基本形态;

  (2) 在二叉树的 第 i 层上至多有 2^(i-l) 个结点(i>=1);

  (3) 深度为 k 的 二叉树至多有 2^k -1 个结点 (k>=1);

  (4) 叶子结点数 = 度为2结点数+1;

  (5) 满二叉树是完全二叉树的一种;还有更常见的非完全二叉树;

  二叉树的存储与遍历:

  (1) 适合用顺序存储结构的二叉树种类较少,更多会使用链式存储结构,但无论如何,都要根据实际问题设计合适的 结点结构 和 存储结构;

  (2) 遍历二叉树是二叉树最基本的操作,其他各种操作的基础;

  (3) 基于二叉树的递归定义有 先序、中序、后序三种遍历算法;时间复杂度为O(n);

  (4) 线索二叉树除了能得到左右孩子结点的信息,还能直接的到结点的前驱和后继信息。

2.树与森林

  树的存储与遍历:

  (1) 常见的存储结构有双亲表示法、孩子表示法、孩子兄弟法。可根据具体问题作出节省空间或节省时间上的改进;

  (2) 森林或树与二叉树可进行相互转换;

  (3) 森林有两种基于递归定义的遍历方法:先序和中序;

3.哈夫曼树

  (1) 带权路径长度最小的二叉树称为哈夫曼树;权值越大的结点离根结点越近;

  (2) 左分支标记为 0, 右分支标记为 1,则根结点到每个叶子结点路径上的 0、1序列即为相应字符的编码,如下图

  

二、感想:

感觉比第四章简单了一丢丢(可能老师手下留情),因为把树的结点线性化后,基本操作还是基于线性表,只是在解决具体问题时,

设计怎样的结点、设计怎样的遍历方法能够适用于当前问题,是需要实操前多思考多比较的

原文地址:https://www.cnblogs.com/jospeer/p/12995808.html