[数据结构4.9]哈夫曼树

带权路径长度

路径长度:路径上所经历边的个数。

结点的权:结点被赋予的值。


树的带权路径长度

WPL,树中所有叶结点的带权路径长度之和,记为WPL=


哈夫曼树,也称最优二叉树,含有n个带权叶子结点带权路径长度最小的二叉树。


哈夫曼树的构造算法

1、将n个结点作为n棵仅含有一个根结点的二叉树,构成森林F;

2、生成一个新结点,并从F中找出根结点权值最小的两棵树作为它的左右子树,且新结点的权值为两棵子树根结点的权值之和;

3、从F中删除这两个树,并将新生成的树加入到F中;

4、重复2,3步骤,直到F中只有一棵树为止。


哈夫曼树的性质

1、每个初始结点都会成为叶节点,双支结点都为新生成的结点;

2、权值越大离根节点越近,反之权值越小离根结点越远;

3、哈夫曼树中没有结点的度为1;

4、n个叶子结点的哈夫曼树的结点总数为2n-1,其中度为2的结点数为n-1。


编码

对一个字符串序列,用二进制来表示字符。


不同类型的编码


前缀编码:没有一个编码是另外一个编码的前缀。

你可能感兴趣的:([数据结构4.9]哈夫曼树)