哈夫曼树、哈夫曼编码——哈哈,至少你要了解一下原理吧

哈夫曼树,即带权路径最小的二叉树,又称为最优二叉树。

哈夫曼算法描述如下:
1)用给定的一组权值{W1,W2,……,Wn},生成一个有n棵树组成的森林F={T1,T2,……Tn},其中每棵二叉树Ti只有一个节点,即权值为Wi的根节点(也是叶子)
2)从F中选择两棵节点权值最小的树,作为新树根的左、右子树(左小右大),新树根的权值是左右子树根节点权值之和
3)从F中删除这两棵树,另将新二叉树加入F中
4)重复2)和3),直到F中只包含一棵树为止

规定哈夫曼树的左分支代表0,右分支代表1,则从根节点到到叶子节点所经过的路径组成的0和1的序列,便成为该节点对应字符的编码,即哈夫曼编码。

你可能感兴趣的:(编码,二叉树)