【头歌】构建哈夫曼树及编码

本文介绍了如何构建哈夫曼树以及根据哈夫曼树生成哈夫曼编码。首先,详细阐述了哈夫曼树的定义、构造算法和存储结构,并提供了构建哈夫曼树的编程要求。接着,讲解了哈夫曼编码的特性,以及如何通过哈夫曼树生成编码。文章以实际例子辅助理解,并给出了编程任务和测试输入输出的示例。
摘要由CSDN通过智能技术生成

构建哈夫曼树及编码

第1关:构建哈夫曼树

任务描述

本关任务:构建哈夫曼树,从键盘读入字符个数n及这n个字符出现的频率即权值,构造带权路径最短的最优二叉树(哈夫曼树)。

相关知识

哈夫曼树的定义

设二叉树具有n个带权值的叶子结点{w1,w2,...,wn},从根结点到每个叶子结点都有一个路径长度。

从根结点到各个叶子结点的路径长度与相应结点权值的乘积的和称为该二叉树的带权路径长度,记作:

其中,wi为第i个叶子结点的权值,li为第i个叶子结点的路径长度。

例如: 哈夫曼树

以上二叉树的带权路径长度值: WPL=1×3+3×3+5×2+7×1=29

给定一组具有确定权值的叶子结点,可以构造出许多形状的二叉树,把其中具有最小带权路径长度的二

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据秃头族

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值