1.哈夫曼树
知识点:
美国数学家哈夫曼发明的哈夫曼编码中用到的一种特殊二叉树,是带权路径长度最小的树。
- 从结点n1到结点nk的路径为一个结点序列n1,n2,…,nk,其中前一个是后一个的父结点。路径所包含连线的个数为路径的长度(如三个结点连起来有两个连线)。
- 对各个变量具有权衡轻重作用的数值就称为权值(叫法很多:权重、权数、加权系数等)。
- 结点的带权路径长度为该结点到树根之间的路径长度与结点的权值的乘积。
- 树的路径长度就是从树根到每一结点的路径长度之和。
- 树的带权路径长度就是树中叶子结点的带权路径之和。
一表一图搞定
2.哈夫曼编码
哈夫曼研究哈夫曼树是为了压缩数据 ,哈夫曼编码是一种最基本的压缩编码方法,该方法根据字符出现的概率来构造异字头的平均长度最短的码字,有时称为最佳编码。
异字头:对于长短不同的编码,任意字符的编码都不是另一个字符的编码的前缀,满足上述条件就是前缀编码。如若存在1001,则不存在1、10、100,防止计算机读到1就不读了。
对于一棵哈夫曼树,它的叶子结点是我们要表示的字符,那么常用字符会在树的上半部分。哈夫曼树每个分支结点都存在左右分支,我们将左分支代表0,右分支代表1,则从根结点到叶子结点所经过的路径分支组成的0和1的序列便为该叶子结点对应字符的编码,这就是哈夫曼编码。
复习顺序:先看图,看能不能理解,不能理解再看文字。
3.并查集
注:这个知识点,我在一轮没有什么关注
直接做题复习这方面。
3.1定义和存储结构:
3.2实现过程
分析:
3.3知识点
并查集的优化