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

铁盒 东莞网站建设最新国际消息

铁盒 东莞网站建设,最新国际消息,安卓手机开发,wordpress商品比较这里写目录标题 基本概念引子基本概念各种路径长度各种带权路径长度结点的带权路径长度树的带权路径长度哈夫曼树 哈夫曼树的构造理论基础构造思想总结 哈夫曼树的实现哈夫曼编码前缀编码哈夫曼编码的思想案例代码实现 编码与解码 基本概念 引子 哈夫曼树就是寻找构造最优二叉…

这里写目录标题

  • 基本概念
    • 引子
    • 基本概念
      • 各种路径长度
      • 各种带权路径长度
        • 结点的带权路径长度
        • 树的带权路径长度
        • 哈夫曼树
    • 哈夫曼树的构造
      • 理论基础
      • 构造思想
      • 总结
    • 哈夫曼树的实现
    • 哈夫曼编码
      • 前缀编码
      • 哈夫曼编码的思想
      • 案例
      • 代码实现
    • 编码与解码

基本概念

引子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
哈夫曼树就是寻找构造最优二叉树,用于提高效率

基本概念

各种路径长度

在这里插入图片描述
在这里插入图片描述

各种带权路径长度

结点的带权路径长度

在这里插入图片描述
在这里插入图片描述

树的带权路径长度

在这里插入图片描述

在这里插入图片描述

哈夫曼树

在这里插入图片描述
带权路径长度最短的树或者二叉树

也就是树的叶子结点带权路径长度之和 :也就是叶子结点的结点路径长度(根结点到叶子结点的路径数) *权重 再求和
在这里插入图片描述
在这里插入图片描述
总结:位高权重
并且哈夫曼树不唯一

哈夫曼树的构造

理论基础

在这里插入图片描述
在这里插入图片描述

构造思想

在这里插入图片描述
可以看到 先将所有结点看成根结点构造出森林 并将权重赋值给结点
之后 选择两个小权重的结点 二者构造出新树 如上图 新树根结点权重为子树结点权重之和
这时要先将森林中的两个树删除 之后 将两个树构造成的新树加入森林(为了进行下一次权重的比较 从而下一步构造的顺利进行)
重复23步 直到剩单根

在这里插入图片描述
在这里插入图片描述
度 是指结点有的子树个数

哈夫曼树结点的度只能是0或者2
n个叶子结点的哈夫曼树 一共有2n-1个结点 分析如上橙色框

总结

在这里插入图片描述

哈夫曼树的实现

在这里插入图片描述
首先是已知叶子结点的个数以及权重

依次放入结构数组的前面 数组一共长度是2n 因为结点一共有2n-1 所以构造2n的数组 不用0下标

进行第二步 合并的时候 将新合并出来的结点往后依次放入 所以根结点是数组中的最后一个位置

新节点合成的时候 要修改新节点数组中的孩子结点下标 两个孩子要修改数组中双亲的下标

之后重复查找最小的权重的两个结点 前提是parent值是空 这是判断的关键 一旦parent值不为空的时候 就相当于退出了比较

在这里插入图片描述
在这里插入图片描述
初始化

在这里插入图片描述
上图中select方法 功能是在HT[K]中选择两个双亲域为0并且权重最小的结点 并返回s1 s2 用于后续操作

方法参数中i-1 是新合成结点的下标 ,在选最小的两个结点时 要从新节点前面选 这里对应理论分析中“第三步的a步骤”
i会逐渐递增

哈夫曼编码

前缀编码

在这里插入图片描述
图中为非前缀编码 所以要设计任意一个字符的编码都不是另一个字符编码的前缀
但是可以前缀一样 后面不一样

哈夫曼编码的思想

在这里插入图片描述
要想出现次数最多的编码最短 正好对应哈夫曼树的权重越大离跟结点越近的特点
在这里插入图片描述
所以在路径上标注0 或者 1
看从根结点到某一个叶子结点经过的路径 那些路径得出来的编码就是字符对应的二进制编码

因为叶子结点不会出现一个字符的路径完全包含另一个字符的路径 所以也就是前缀编码
并且要想出现次数最多的编码最短 正好对应哈夫曼树的权重越大离跟结点越近的特点 所以哈夫曼编码效率更高
在这里插入图片描述
因为叶子结点不会出现一个字符的路径完全包含另一个字符的路径 所以也就是前缀编码
并且要想出现次数最多的编码最短 正好对应哈夫曼树的权重越大离跟结点越近的特点 所以哈夫曼编码效率更高

案例

在这里插入图片描述
先根据哈夫曼树的设计思想 画出来哈夫曼树 在路径上标注0 1
在这里插入图片描述

代码实现

在这里插入图片描述
在这里插入图片描述
其中HC数组是指针数组 每个指针指向对应的字符串 也就是字符串的头指针

编码与解码

在这里插入图片描述
进行哈夫曼编码时 构造指针数组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先根据哈夫曼树的构造思想+字符频度表 构造出哈夫曼树 标上各个叶子结点代表的字符 之后开始解码 0就向左走 1就向右走 直到走到叶子结点 记录一个字符 重复此操作即可

http://www.15wanjia.com/news/25607.html

相关文章:

  • 政府门户网站建设问题互联网推广是什么工作内容
  • 网站如何做流量赚钱郴州网站建设网络推广渠道
  • wordpress4.9.2当阳seo外包
  • 百度商桥怎么嵌入网站优化营商环境的措施建议
  • 数字今天科技 网站软文推广代理平台
  • 南通网站建设外包seo广告优化
  • 服务器与虚拟主机百度关键词优化平台
  • wordpress 修改为中文字体长沙网站seo收费标准
  • 好的做蛋糕网站bt蚂蚁磁力
  • 怎么用vps的linux做网站搜索引擎优化seo多少钱
  • 凯里做网站网站模板购买
  • 常州天宁区做网站公司网站优化公司排名
  • 重庆网站制作珠海公司做网站怎么赚钱
  • 做网站需要准备哪些西地那非
  • 自助建站最好的平台企业查询系统官网天眼查
  • 做木材生意的外贸网站百度下载安装2021最新版
  • 信息类网站有哪些ios微信上的pdf乱码
  • 做任务的电脑网站北京seo优化哪家公司好
  • 网站用什么字体做正文公司广告推广方案
  • 网站qq联系怎么做网络推广项目计划书
  • 第三方做公司网站企业如何进行品牌推广
  • 妙趣网 通辽网站建设google chrome网页版
  • 涿州做网站的公司seo网络推广技术员招聘
  • 装修的网站都有哪些淘宝seo搜索优化工具
  • 正规的培训行业网站制作seo方法图片
  • 手机版企页网站案例百度一下官方网页
  • logo网站在线制作网页设计图
  • 建筑方案的网站百度推广手机版
  • 建设网站教程2016怎么免费注册域名
  • 网站建设类行业资讯百度一下你就知道百度首页