Huffman树

1、构造哈夫曼树的过程

  • 按从小到大排序
  • 选取其根结点的权值为最小的两棵二叉树,分别作为左、右子树构造一棵新的二叉树,并置这棵新的二叉树根结点的权值为其左、右子树根结点的权值之和
  • 删去这两棵树,同时加入刚生成的新树的根节点
  • 再一次从小到大排序,重复上述过程

2、带权路径长度(WPL)
在这里插入图片描述

对于所有的树还有另外的算法就是:一棵树的带权路径长度等于其中所有分支结点的权值之和,也就是除头结点外各节点的权值加和


3、细碎知识点

  • 对N(≥2)个权值均不相同的字符构造哈夫曼树,则树中任一非叶结点的权值一定不小于下一层任一结点的权值
  • 哈夫曼树中一定没有度为1的结点
  • 哈夫曼树中两个权值最小的结点一定是兄弟结点
  • 经过哈夫曼编码后,求文本所占字节数也就是求带权路径长度
  • 等长方式编码:有n个字符就是log2底n的长度,在求n个字符的带权路径长度的时候,叶子结点的路径长度均为log2底n
  • 哈夫曼编码比采用等长方式的编码节省了多少位数,也就是求出各自的带权路径长度之后做差
  • 一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和,也就是除头结点外各节点的权值加和
  • 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
  • 哈夫曼树的结点个数不能是偶数
  • 哈夫曼树是n个带权叶子结点构成的所有二叉树中带权路径最小的二叉树
  • 在哈夫曼树中,任何一个结点它的度都是0或者2
  • 当一棵具有n 个叶子结点的二叉树的WPL 值为最小时,称其树为哈夫曼树,其二叉树的形状不是唯一的
  • 编码:左0右1,从树根到叶结点,经历的分支连起来就是编码序列
  • 某字符出现的概率为,可以将概率视为叶子的权值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值