哈夫曼树学习
前面学习过一些二叉树的知识,但是对于哈夫曼树的学习似乎被我忽略了.但是在最近的学习当中我又遇到了相关的问题,所以我查找资料并复习了一些哈夫曼树的知识.
首先我们来看一下哈夫曼树的构建
给定一组字符和其出现的频率(权值),我们来创建一颗哈夫曼树
字符 | A | B | C | D | E |
---|---|---|---|---|---|
出现频次 | 1 | 3 | 8 | 6 | 2 |
- 构建步骤
- 1.以权值作为根结点构建n颗二叉树,组成森林
- 2.在森林中选出2个根结点最小的树合并,作为一颗新树的左右子树,且新树的根结点为其左右子树根结点之和
- 3.从森林中删除刚才选取的2棵树,并将新树加入森林
- 4.重复2、3步骤,直到森林只剩一颗树为止,该树即为哈夫曼树.
最初的森林,都是一样高的树
找到权值最小的两个,构建一颗全新的树