哈夫曼树

哈夫曼树又称为最优二叉树,是一类带权路径长度最小树。

1、路径和路径长度。

树中两个结点之间的路径,是指从树中一个结点到达另一个结点之间的分支。

路径中所经过的分支数称为路径的长度,它等于路径上的结点数减1。

 

2、结点的权和带权路径长度。

在许多应用中常为树中的结点赋予一个具有某种意义的实践,称之为结点的权。

结点的带权路径长度定义为从树的根结点到该结点之间的路径与该结点权值的乘积。

 

3、树的带权路径长度。

树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记为WPL=W(1)*L(1)+...+W(n)*L(n);

 

4、哈夫曼树。

哈夫曼树是由于n个带权叶子结点构成的所有二叉树中带权路径长度WPL最小的二叉树,所以又称为最优二叉树。

 

5、哈夫曼算法。

根据权值越大的叶子结点离根越近的特点,哈夫曼给出的构造最优二叉树的算法如下:

(1)由给定n个权值{w1,w2,w3,..,wn}构成n课只有一个叶子结点的二叉树,得到一个二叉森林即集合F={T1,T2...,Tn};

(2)在F中选取跟结点权值最小的两棵二叉树作为左右子树构造一棵二叉树,且置新树节点的权值为左右子树的根结点权值之和。

(3)在F中删去作为左右子树的根结点权值之和。

(4)重复(2)和(3)两步,直到F中只有一棵二叉树时,此二叉树即为所要构成的哈夫曼树。

 

posted @ 2014-10-22 22:35  一路上的风景  阅读(146)  评论(0)    收藏  举报