哈夫曼树(Huffman)【数据结构】

news/2024/11/22 20:04:28/

目录

​编辑

一、基本概念 

二、哈夫曼树的构造算法 

三、哈夫曼编码 


 

假如<60分的同学占5%,60到70分的占15%……

这里的百分数就是权。 

此时,效率最高(判断次数最少)的树就是哈夫曼树。 

一、基本概念 

权(weight):将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。

结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积。

树的路径长度:从树根每一个结点的路径长度之和。记作TL

结点的带权路径长度:从根节点到该结点之间的路径长度与该结点的权的乘积

树的带权路径长度:树中所有叶子结点的带权路径长度之和

哈夫曼树:最优树(带权路径长度最短的树)

注:“带权路径最短”是在度相同的树中比较而得到的。

哈夫曼树:最优二叉树(带权路径长度最短的二叉树)

哈夫曼树中权越大的叶子离跟越近

二、哈夫曼树的构造算法 

 哈夫曼树构造算法的实现:

采用顺序存储结构:一维结构数组 HuffmanTree H;

结点类型定义:

typedef struct
{int weight;int parent, lch, rch;
}HTNode,*HuffmanTree;

1、初始化HT[1……2n-1]:lch=rch=parent=0;

2、输入初始n个叶子结点:置HT[1……n]的weight值;

3、进行以下n-1次合并,依次产生n-1个结点HT[i],i=n+1……2n-1;

a)在HT[1..i-1]中选两个未被选过(从parent==0的结点中选)的weight最小的两个结点HT[s1]和HT[s2],s1、s2为两个最小结点下标;
b)修改HT[s1]和HT[s2]的parent值:HT[s1].parent=i; HT[s2].parent=i;
D

c)修改新产生的HT[i]:
HT[i].weight=HT[s1].weight + HT[s2].weight;
HT[i].lch=s1;HT[i].rch=s2;

 

 

三、哈夫曼编码 

 

 

 

  


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

相关文章

基于Android的视频分享平台的设计与实现

基于Android的视频分享平台的设计与实现 摘 要 短视频平台是以特定群众为目标的差异化群体定位工具。其利用自身的便捷性可以实现视频的随时拍摄和随时上传&#xff0c;可以产生亚文化圈的萌芽。这种开放便利的特性在吸引了广大用户的同时&#xff0c;也在一定程度上解决了由…

Pycharm中更新pip过程中遇见的问题

问题一&#xff1a; pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host‘files.pythonhosted.org’, port443): Read timed out. You are using pip version 10.0.1, however version 23.1.2 is available. You should consider upgrading via the …

WF攻击(网站指纹攻击)

网站指纹&#xff08;WF&#xff09;攻击是被动的本地攻击者通过比较用户发送和接收的数据包序列与先前记录的数据集来确定加密互联网流量的目的地。可以通过网络流量中的模式来识别Tor用户访问过的页面。因此&#xff0c;WF攻击是Tor等隐私增强技术特别关注的题。 攻击过程 该…

标准体系,技术标准,政策标准,开发模板

02-项目范围说明书.doc 06-项目沟通计划表.doc 08-项目状态报告.doc 04-项目进度计划表.xls 07-项目会议纪要.doc 10-项目总结表.doc 09-项目变更管理表.doc 01-项目组成员表.doc 03-Project WBS任务分解表.doc 05-项目风险管理表.doc 互联网行业分析指标体系.pdf 物流行业指标…

⑥电子产品拆解分析-食物电子秤

⑥电子产品拆解分析-食物电子秤 一、功能介绍二、电路分析以及器件作用三、原理图复现与学习1、电源电路2、按键电路3、其它接口电路 一、功能介绍 ①高精度0.1g称重&#xff1b;②内置锂电池和外加2个7号电池超长续航&#xff1b;③可进行克和盎司单位称重&#xff1b;④一键智…

《UVM 实战》 代码下载, 无需注册

法一&#xff1a; https://www.hzcourse.com/web/refbook/detail/5651/229 法二&#xff1a; https://www.hzcourse.com/oep/resource/access/L29wZW5yZXNvdXJjZXMvdGVhY2hfcmVzb3VyY2UvZmlsZS8yMDE3LzEwL2IyMDE0OTFmMmUxMjdkNTM2YjhmMjBmNWUzMTRhMjE3Lmd6JGV4YW1wbGVfYW5kX3…

部署OA系统

文章目录 前言一、OA系统基础1.OA系统2.魔方OA3.OA系统架构4.部署OA系统 二、使用步骤总结 前言 部署OA系统&#xff0c;以魔方OA为例 一、OA系统基础 1.OA系统 办公自动化&#xff08;Office Automation&#xff0c;简称OA&#xff09;&#xff0c;是将计算机、通信等现代化…

【leetcode刷题之路】初级算法——链表+树+排序和搜索+动态规划

文章目录 3 链表3.1 【链表】删除链表中的节点3.2 【双指针】删除链表的倒数第 N 个结点3.3 【链表】反转链表3.4 【链表】合并两个有序链表3.5 【链表】回文链表3.6 【双指针】环形链表 4 树4.1 【递归】二叉树的最大深度4.2 【递归】验证二叉搜索树4.3 【递归】对称二叉树4.4…