首页 > 其他分享 >【树】哈夫曼树-频率大的短编码

【树】哈夫曼树-频率大的短编码

时间:2023-11-13 21:11:36浏览次数:27  
标签:编码 遍历 哈夫曼 parent 元素 频率 节点

解决问题:

对一篇电报编码:Hello world 这里面除去符号,最多的字母是o,若要转换为01二进制尽量编码短;最少的字母h,编码长。

h 1; e 1; r 1; d 1; w 1; o 2; l 3;

-开始手动编码

--每次选取频次最小 左小右大 做孩子,加入一个父节点(值为孩子频次和)

编码:

 

- 树最多 2X元素长度 - 1个节点

- 为了1遍历 哈夫曼树 malloc 2X个node 内存

- 初始化 1 到 元素长度 节点 设置lchild rchild parent 为 null value  = 对应频次

- 从 元素长度 + 1 开始遍历 因为后面才是新加父节点

  - 每次选择 最小的2个元素

    - 选择方法 遍历元素判断当前节点是否超过最大元素长度 与 是否有 parent 也就是已经被编码

  - 获得两个元素指针后 当前元素的value = 两个元素相加

  - 两个元素parent都指向当前元素

- 构建哈夫曼树完毕 获取编码

  - 遍历 1 到 元素长度 即可

  - 由于编码为倒序 递归parent 所以 len - start 获取 start = len - 1;

 

标签:编码,遍历,哈夫曼,parent,元素,频率,节点
From: https://www.cnblogs.com/su27/p/17830061.html

相关文章

  • Excel区间频率统计
    有时候会使用Excel统计一下分段区间数据的频率,也就是数据在不同的区间的分布情况。下面案例就是使用Excel统计一下数据的区间分布情况。使用frequency函数可以得到想要的结果。公式=frequency(数据列,分界区间),然后CTRL+SHIFT+ENTER注意点:要全部选中要填写的表格,在这里就......
  • 申报软件著作权时,用vscode编码器统计代码行数(转载)
    原文地址https://blog.csdn.net/michiko98/article/details/133743417在一些特殊情况中我们需要计算代码的行数,这时我们就可以借助vscode的VS CodeCounter插件进行统计。第一步:选择VS Code Counter进行安装。(安装完毕有条件的可以重启编码器)。第二步:快捷键ctrl+shift+p进......
  • 【补充】字符串的编码
    【一】ASCII码计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。......
  • 12.base64编码注入
    原理代码审计  黑盒测试下的base64注入admin')and1=1--admin')and1=2--  ......
  • Python中的字符编码
    一、发展史 1、前提字符编码只跟文本数据和字符串有关系,它跟视频文件、音频文件等无关2、计算机只能识别二进制数,详解如下二进制数即由0和1组成的数字,例如010010101010。计算机是基于电工作的,电的特性即高低电平,人类从逻辑层面将高电平对应为数字1,低电平对应为数字0,这......
  • P-III曲线水文频率计算程序(方法)
    P-III曲线水文频率计算程序(方法) 最近遇到水文频率曲线拟合计算相关的问题,在网上查阅了一下,毕竟是专业性比较强的知识内容,好像没有比较系统全面的资料,一时兴起,做了一些研究,总结了一下所了解的一些计算方法以及能够帮助我们解决实际问题的辅助计算软件,并作了对比分析,主要情况如下......
  • 腾讯云V265/TXAV1直播场景下的编码优化和应用
     //  编者按:随着视频直播不断向着超高清、低延时、高码率的方向发展,AppleVision的出现又进一步拓展了对3D,8K120FPS的视频编码需求,视频的编码优化也变得越来越具有挑战性。LiveVideoStackCon2023上海站邀请到腾讯云的姜骜杰老师分享腾讯云V265/TXAV1直播场景下的编码优化......
  • OpenAI重磅推出GPTs,无需编码人人可以自定ChatGPT!
    原创|文BFT机器人在11月7日深夜2点(北京时间),美国旧金山举办了首届开发者大会,该活动由AI领域的知名公司OpenAI主办。尽管这是该公司的首届大会,但其盛大的规模和影响力已将其誉为“AI春晚”。在会议上,SamAltman用了45分钟的时间发布了多款新产品,微软首席执行官SatyaNadella也亲自......
  • Unity程序员要注意的编码规范
    Unity程序员如何写好代码,写代码的过程中要注意的哪些些点,今天给大家分享一些经验规则,通过遵守这些规则作出明智的架构决策,确保更高的团队开发效率和稳定的代码。避免抽象类我们在开发中经常喜欢抽象,其实抽象得过程中往往会产生设计过度和抽象过度,而这些抽象得代码可能会令人难以......
  • js前端编码规范
    1、编码风格1.1强制两行缩紧1.2强制统一以分号结束语句1.3强制逗号分隔多行结构,始终加上最后一个逗号1.4推荐使用大括号包裹代码块1.4.3强制不适用空代码块1.5强制空格风格1.6推荐文件末保留一行空行;在块末和新语句间插......