霍夫曼树与霍夫曼编码

HUFFMAN树的定义:

给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度(WPL)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。

wpl的计算:如图:

霍夫曼树与霍夫曼编码_第1张图片

二叉树a的wpl = 5*1+15*2+40*3+30*4+10*4=315

二叉树b的wpl = 5*3+15*3+40*2+30*2+10*2=220

哈弗曼树:

霍夫曼树与霍夫曼编码_第2张图片

 

wpl = 5*4+15*3+40*1+30*2+10*4=205

霍夫曼树的构造:

 霍夫曼树与霍夫曼编码_第3张图片

 

霍夫曼编码:下图中,左图为霍夫曼树的过程的权值表示,右图为将权值改为0,1后的树。这样每个字母用经过路径的0,1来编码,即可以得到霍夫曼编码。

 

你可能感兴趣的:(tree)