TT 哈夫曼编码_某段文本中各个字母出现的频率-程序员宅基地

技术标签: 腾讯  哈夫曼编码  应届面经  机试真题  哈夫曼树  

某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:()

  • a(000)  b(001)  h(01)  i(10)  o(11)
  • a(0000)  b(0001)  h(001)  o(01)  i(1)
  • a(000)  b(001)  h(01)  i(10)  o(00)
  • a(0000)  b(0001)  h(001)  o(000)  i(1)
【解析】

创建一个哈夫曼树,原则如下:

1. 将每个英文字母依照出现频率由小排到大,最小在左,组成一个序列;
2. 每个字母都代表一个终端节点(叶节点),比较每个字母的出现频率,将最小的两个字母频率相加合成一个新的节点,将两个字母从序列中删除,将生成的节点加入到字母队列中;

3. 重复前面两步,直到序列中没有字母为止。


哈夫曼进行编码:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013630349/article/details/48223665

智能推荐

MyBatis框架-程序员宅基地

文章浏览阅读136次。学习主题:mybatis学习目标:1 掌握框架的概念2 掌握mybatis环境搭建3 掌握mybatis处理查询4 掌握mybatis核心配置文件5 掌握mybatis的多种查询方式6 掌握Log4j的使用7 掌握mybatis集成log4j1.框架是什么_为什么框架都要有配置文件(1)什么是框架? 常用的框架有哪些?1、框架是偷懒的程序员将代码进行封装,之后进行重复使用的过...

spring mvc自定义过滤器filter实现对request预处理和response响应_springmvc 自定义filter 导包-程序员宅基地

文章浏览阅读1.9w次,点赞3次,收藏10次。 过滤器的作用拦截请求,提取公用的代码,在请求访问action之前先处理一段代码,在action处理之后,在处理一段代码;基于这样的作用,我们就可以在请求访问action之前先处理一些整个项目共用的代码片段,比如,域名,,请求的url信息,以及基于域名拓展的自定义信息,比如用户数据等等基础数据,获取到这些基础数据之后,将这些数据保存在请求的上下文,这样在所有action请求就可以通用;..._springmvc 自定义filter 导包

Angular父组件调用子组件的方法【以弹出对话框为例】_angular组件调用组件方法-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏4次。脚手架生成ng new modal-appnpm icd modal-app/ng g c modal文件结构为:导入佐罗(ant design)样式npm install ng-zorro-antd --save在angular.json中引入:"styles": [ "node_modules/ng-zorro-antd/ng-zorro-antd.min.css" ]在style.css中引入:@import "~ng-zorro-antd/ng-zo._angular组件调用组件方法

MyBatis排序失效问题_desc mybatis 失效-程序员宅基地

文章浏览阅读797次。情景:将数据库里边的“新闻资讯”信息按照特定字段的升序/降序进行分页显示。   前端发送数据:newType(新闻类型,包括公司动态、行业资讯等类型)、orderBy(指定按照哪一个字段进行排序)、orderType(指定按照哪一种排序顺序进行排序,包括升序、降序)、start(开始查询的记录位置)、pageSize(本次查询的记录条数)。   MyBatis语句:    &l..._desc mybatis 失效

IDEA创建SpringBoot项目,前后端分离_在idea中用springboot构建后台项目(前后端分离)-程序员宅基地

文章浏览阅读4.7k次,点赞4次,收藏22次。IDEA创建SpringBoot项目,前后端分离1、创建项目2、点击next,进入选择springboot组件阶段4、点击finish即可完成创建springboot项目5、启动项目:创建成功后进入启动类,启动application类有如下输出即代表创建成功![,](https://img-blog.csdnimg.cn/20200716220241414.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aH_在idea中用springboot构建后台项目(前后端分离)

a-switch的几种简单应用-程序员宅基地

文章浏览阅读3.5k次。a-switch的几种简单应用_a-switch

随便推点

回溯问题,leetcode39,40,46,47题归纳_回溯 39 40-程序员宅基地

文章浏览阅读78次。46题利用used数组,一个数字不会在一个序列里边出现两次,不会出现[1,1,1];[1,1,2]这种情况var permute = function(nums) { const res =[]; const uesd = {}; var dfs = function(path){ if(path.length == nums.length){ res.push(path.slice()); return; _回溯 39 40

python的os.walk()函数的使用及对于root,dirs,files的理解_for root, dirs, files in os.walk-程序员宅基地

文章浏览阅读1.3w次,点赞15次,收藏55次。版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90072063关于此函数的详情可移步:https://www.runoob.com/python3/python3-os-walk.html# -*- coding: utf-8 -*-import ..._for root, dirs, files in os.walk

Apache HTTPD 换行解析漏洞(CVE-2017-15715) 漏洞复现_一、apache httpd 换行解析漏洞(cve-2017-15715)-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏6次。前言Apache在2.4.0-2.4.29版本中存在一个解析漏洞。程序在解析PHP时,如果文件名最后有一个换行符x0A,apache依然会将其当成php解析,但是在上传文件时可以成功的绕过黑名单。如果上传文件的php程序是设置的白名单,那么这个漏洞将无法利用。漏洞环境该环境使用vulhub搭建,该漏洞路径为 vulhub/httpd/CVE-2017-15715。进入该漏洞路径后执行一下命令:docker-compose up -d-d 表示后台运行。注意:该命令必须在漏洞目录下执行,_一、apache httpd 换行解析漏洞(cve-2017-15715)

【实时日志分析系列之】-------- 技术选型篇_日志系统分析的项目背景及技术选型-程序员宅基地

文章浏览阅读1.4k次。前言大概是节前到节后的小2个月时间,已经把实时日志分析这一套小架子搭了起来,并且已经可以看到成果,现在继续利用业余时间把这个系列总结记录一下。逻辑架构图逻辑架构图如下:一图胜过千言万语,来看下实时日志分析的技术选型以及整个流程。其实这一套大部分都是组件,而整套组件中用到的都是Elastic Stack中的组件。首先采用了filebeat ( elastic st..._日志系统分析的项目背景及技术选型

Android 中如何使用CountDownTimer进行倒计时_new countdowntimer(20000, 1000)-程序员宅基地

文章浏览阅读542次。android中有倒计时控件Chronometer,但是该控件的一个特点是,如果所在页面不可见时,会暂停计时,如果你不希望计时暂停,则该控件不适用。CountDownTimer也提供了倒计时功能,而且页面不可见时会继续计时。用法如下:timeticker = new CountDownTimer(20000, 1000) {//毫秒数,前为总时间,后为间隔时间_new countdowntimer(20000, 1000)

sqlalchemy查询使用和遇到的问题_sqlalchemy 不查询id-程序员宅基地

文章浏览阅读2.5k次。sqlalchemy查询使用1.带条件查询查询是最常用的,对于各种查询我们必须要十分清楚,首先是带条件的查询#带条件查询rows = session.query(User).filter_by(username='jingqi').all()print(rows)rows1 = session.query(User).filter(User.username=='jingqi..._sqlalchemy 不查询id

推荐文章

热门文章

相关标签