C++ 哈夫曼树和哈夫曼编码

C++ 哈夫曼树和哈夫曼编码

哈夫曼树又称最优二叉树是树的结构应用之一。

哈夫曼树的构建:

从集合中选出最小的两个元素,相加和放入集合。再从集合中选出最小的两个元素,相加和放入集合…

不说了,直接上图
C++ 哈夫曼树和哈夫曼编码

哈夫曼树的带权路径长度:

即叶结点权值 * 根结点到该叶结点的路径长度

路径长度:根结点到第L层结点的路径长度为L-1
C++ 哈夫曼树和哈夫曼编码

哈夫曼编码

从结点开始,左分支路径记0,右分支路径记1,从根结点到目标叶结点路径上的编号序列就是哈夫曼编码
C++ 哈夫曼树和哈夫曼编码