哈夫曼编码、哈夫曼树

news/2024/11/22 3:51:51/

        已知一个文件中出现的各字符及其对应的率如下表所示。若采用定长编码,则该文件中字符的码长应为( )。若采用Huffman编码,则字符序列face的编码应为( )

字符abcdef
频率4513121695

        码长决定了可以显示几位字符,题中一共有6位,那么就应该是2 ^ 3 , 码长至少为3位。

       得出哈夫曼编码分为两步:

一、绘制哈夫曼树(哈夫曼树叫做带权最短路径树)

        首先获取两个最小的值(9,5)添加到树中,左边为较小的值,右边为较大的值。将两值相加得到新的节点 14

        再获取两个最小的值(13,12) 与新的节点作比较,发现13 和 12 都小于 新节点14,那就再画一个树,并获取新的节点 25

         两个树的排序位置也要遵循小的在左,大的在右。然后再次获取最小的两个值(45,16),然后发现 16大于14 而小于25,那么16和14组成新的树。生成新的节点 30

         最后只剩下45了,而45大于25,大于30,那么它只能作为单独一个节点加入到树中(哈夫曼树是二叉树的一种,最多能有左子树和右子树),将25和30相连生成新的节点55。

        到这第一步就完成了,生成了哈夫曼树。

第二步、生成哈夫曼编码

        在哈夫曼树中左子树标记为0,右子树为1

                将字符填入对应的结点中

         最后得出节点对应的编码:a:0 , b:101 , c:100, d: 111,e:1101, f : 1100

         face的编码应为(1100 0 100 1101 )

 


http://www.ppmy.cn/news/33723.html

相关文章

【Linux】环境变量(基本概念 常见环境变量 测试PATH 环境变量相关命令)

文章目录环境变量基本概念常见环境变量测试PATH别的环境变量通过系统调用获取或设置环境变量环境变量相关命令export: 设置一个新的环境变量set: 显示本地定义的shell变量和环境变量unset: 清除环境变量通过代码如何获取环境变量环境变量 基本概念 环境变量(environment vari…

ThreadPool线程池源码解析

ThreadPool线程池源码解析 文章目录前言一、基本使用二、执行流程三、源码分析ThreadPoolExecutor 中重要属性ThreadPoolExecutor 内部类Workerexecute()方法addWorker(command, true)方法runWorker(worker )方法getTask()方法shutdown和shutdownNow四、…

Java栈和队列·下

Java栈和队列下2. 队列(Queue)2.1 概念2.2 实现2.3 相似方法的区别2.4 循环队列3. 双端队列 (Deque)3.1 概念4.java中的栈和队列5. 栈和队列面试题大家好,我是晓星航。今天为大家带来的是 Java栈和队列下 的讲解!😀 继上一个讲完的栈后&…

1.9 日本蜡烛图技术之支撑和压力的其他含义

破低反涨和破高反跌形态 支撑和压力的研究不能局限于涨跌幅边界研究,用K线图来验证会注意到很多突破来临的信号破低反涨形态 一种移动和反向移动,价格跌破支撑,然后反弹重新上涨通常建立新的支撑线 破高反跌形态:突破压力后&…

hadoop理论基础(一)

1.hadoop的组成2 HDFS概述HDFS(Hadoop Distributed File System)是一个分布式文件系统(1)NameNode:存储文件的元数据;如文件名、文件目录结构、文件属性,以及每个文件的块列表和块所在的DataNode等。(2)DataNode:在本地…

【测试开发篇4】测试模型

目录 一、软件测试V模型 编码前 概要设计: 详细设计: 编码后: 单元测试&集成测试 系统测试 验收测试 V模型的特点 优点: 缺点: 二、软件测试W模型 编码之前: 编码的时候: 编…

Three.js——learn01

Three.js——learn01Three.js——learn01本地搭建文档通过parcel搭建Threejs环境1.初始化2.安装parcel设置打包位置3.设置目录结构QuickStart安装threejsindex.htmlindex.cssindex.js启动Three.js——learn01 本地搭建文档 登录GitHub搜索three.js git clone https://github…

KubeSphere All in one安装配置手册

KubeSphere All in one安装配置手册 1. 初始化 1.1 配置apt源 # vi /etc/apt/sources.list deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb…