哈夫曼树简略分析

哈夫曼树

哈夫曼树简略分析_第1张图片

(发现编码特别长,由于每个字母出现的频率不一样,考虑用用短的编码表示出现频率高的字母,用长的编码表示出现频率低的字母,这样可以缩短编码的长度)

统计字母出现的频率:
哈夫曼树简略分析_第2张图片

每次从集合中找2个频率最少的字母出来 ,用他们构成一个新结点,并入集合中。一直下去…
哈夫曼树简略分析_第3张图片
出现次数多的离根结点近,出现次数少离根节点远。

解码:根据编码串中的字母,沿着哈夫曼树扫描,扫描到字母。接着扫描下一个字母。

对一个字符的编码是另一个字符编码的前缀,会出现歧义。
哈夫曼编码中,没有一个字符的编码是另一个字符编码的前缀。

WPL:
哈夫曼树简略分析_第4张图片

特点:

  • 权值越大的结点离根结点越近。
  • 树中没有度为1的结点。(没有单分支结点)这类树又叫做正则(严格)二叉树。
  • 树的带权路径长度最短

哈夫曼n叉树

构造哈夫曼3叉树:就是把每回选2个换成每回选3个。

不够3个结点,采取补权值为0结点的方式。
(显然0应该在最开始就串起来,因为这样0离根会较远,权值为0,就降低了带权路径)
哈夫曼树简略分析_第5张图片

你可能感兴趣的:(数据结构)