数据结构第五章学习总结
一、本章内容小结
本章主要学习了树(普通树、二叉树、森林、哈夫曼树等)的相关知识。
1.树:
n个(n>=0)个结点构成的有限集合。
特殊情况:二叉树
二叉树性质:
(1)第i层上至多有2^(i-1)个结点
(2)深度为i的二叉树至多有2^i - 1个结点
(3)对任何一棵二叉树T,如果叶子结点数为n0,度为2的结点数为n2,则n0=n2+1
(4)具有n个结点的完全二叉树的深度为log2(n)(向下取整)+1
遍历二叉树:先序、中序、后序遍历
2.森林
由若干棵树组成。
森林转换为二叉树:若干棵树先分别转化为二叉树,再依次将当前二叉树的根节点作为前一棵树根节点的右孩子连接,这样若干二叉树连接起来就得到转换而来的二叉树。对于每一个结点,左是孩子,右是兄弟。
二叉树转换为森林:从根节点开始,若右孩子存在,则与右孩子连线删除,再看分离后的二叉树,若右孩子存在,则连线删除。后续以此类推,知道右孩子连线都删除为止。分离后的二叉树转换为树即可。
3.哈夫曼树
结点集合中,选取权重最小的两个结点作为左右孩子,权重相加后形成新的结点加入集合继续进行选取结合,以此类推得到的二叉树则为哈夫曼树。
哈夫曼树又称最优树,KMP最小,可以减少编码存储所需空间。