当前位置: 首页 > news >正文

鹏翔科技 网站建设国内永久免费云服务器

鹏翔科技 网站建设,国内永久免费云服务器,wordpress上传网页,哪个网站做刷手最好哈夫曼树 路径长度:从树中一个结点到另一个结点之间的分支构成这两个节点之间的路径,路径上的分支数目称为路径长度 树的带权路径长度:树中所有叶子结点的带权路径长度之和,通常记为WPL ∑ k 1 n w k l k \sum^{n}_{k1}w_kl_k …

哈夫曼树

路径长度:从树中一个结点到另一个结点之间的分支构成这两个节点之间的路径,路径上的分支数目称为路径长度

树的带权路径长度:树中所有叶子结点的带权路径长度之和,通常记为WPL= ∑ k = 1 n w k l k \sum^{n}_{k=1}w_kl_k k=1nwklk

带权路径长度最小的二叉树称为最优二叉树哈夫曼树

注意

哈夫曼树不一定是完全二叉树

书中一定没有度为1的结点

树中权值最小的两个结点一定是兄弟

包含n个叶子节点的哈夫曼树共有2n-1个结点

包含n棵树的森林要经过n-1次合并才能形成哈夫曼树,共形成n-1个新结点,且度为2

树中任意非叶子节点的权值一定不小于下一层任意结点的权值

哈夫曼树的构造

哈夫曼算法:

  1. 根据给定的权值构成n棵二叉树的森林,每棵树只有一个带权为wi的根节点
  2. 在森林中选取两棵根节点权值最小的树作为左右子树,构造一棵新的二叉树,且设置新的二叉树的根节点的权值为其左右子树的权值和
  3. 在森林中删除这两棵树,同时将新得到的二叉树加入森林中
  4. 重复(2)(3),直到森林中只有一棵树为止,这棵树即为哈夫曼树(重复第二步时不一定选用新树)

哈夫曼树的实现

采用顺序存储结构

typedef struct{int weight;int parent,lch,rch;
}HTNode,*HTree;
void CreateHuffmanTree(HuffmanTree HT,int n){if(n<=1)return;m=2*n-1;//数组共2n-1个元素HT=new HTNode[m+1];//0号单元未用,HT[m]表示根节点for(i=1;i<=m;i++){	//将2n-1个元素的lch、rch、parent置为0HT[i].lch=0;HT[i].rch=0;HT[i].parent=0;}for(i=1;i<=n;++i)cin>>HT[i].weight;//输入前n个元素的weight值//初始化结束,下面开始建立哈夫曼树for(i=n+1;i<=m;i++){	//合并产生n-1个结点——构造Huffman树Select(HT,i-1,s1,s2);//在HT[k]中选择两个双亲域为0,且权值最小的结点,并返回它们在HT中的序号s1和s2HT[s1].parent=i;HT[s2].parent=i;	//表示从F中删除s1、s2HT[i].lch=s1;	HT[i].rch=s2;	//s1,s2分别作为i的左右孩子HT[i].weight=HT[s1].weight+HT[s2].weight;//i的权值为左右孩子权值之和}
}

哈夫曼编码

将编码设计为不等长的二进制编码,让代传字符中出现次数较多的字符采用较短的编码

前缀编码:任一个字符的编码都不是另一个字符的字符的编码的前缀

构造哈夫曼编码:

  1. 将字符出现的频率作为权值,构建哈夫曼树
  2. 从根节点出发,左分支标记0,右分支标记1
  3. 从根节点出发,到叶子节点,路过的所有分支的编码组合起来,就是哈夫曼编码
http://www.skylitedrivein.com/news/426.html

相关文章:

  • 做生物卷子的网站大数据推广公司
  • 西安网站设计建设公司中国十大互联网公司排名
  • wordpress 企业建站焦作网络推广哪家好
  • 网站建立定位企划网络seo是什么意思
  • 网站设计模板百度云成都网站优化seo
  • 中国佛山手机网站建设网站内部链接优化方法
  • 上海装潢设计seo搜索引擎优化怎么做
  • 深圳网站官网建设方案seo优化
  • 戏曲网站建设的可行性分析中国教育培训网
  • 广西今天疫情最新政策广州seo网站推广公司
  • 网站开发实战教程百度关键词seo公司
  • 任务网站的接口怎么做网站推广策划书范文
  • 销售网站建设怎么做网站建设费用都选网络
  • 网站开发 青岛百度搜索热度查询
  • 灯塔网站制作公司怎么制作网站二维码
  • 东莞市官网网站建设怎么样手机自己怎么建电影网站
  • 做网站被坑能找司法吗深圳网络推广公司排名
  • 日照网站建建设新闻 最新消息
  • 网站标题的写法网址大全下载
  • 在线教育网站开发实例温州seo招聘
  • 朝阳区网站开发公司贵州seo技术培训
  • 免费试用网站网站关键词优化的步骤和过程
  • 网站重定向怎么做推广seo公司
  • phpcms怎么做网站郑州高端网站建设哪家好
  • 诸城做网站公司友情链接的网站
  • 网站cms系统下载西安网站seo价格
  • 广州一起做网站网店培训
  • 淮安哪里有做网站的人软文标题写作技巧
  • 商业网站域名后缀重庆网站建设技术外包
  • wordpress网站插件下载失败十大门户网站