赫夫曼树(最优二叉树)-数据结构(16)

一、例子引出问题参考书上P144-P149 。在我们计算成绩排名的时候,我们大部分人的成绩都在中等的,还有一小部分在极优和极差中,服从正态分布。因此出现了让有权重的树,为了将经常用到的判断放在前面,因此建立了最优二叉树。二、存储结构//赫夫曼树typedef struct { unsigned int weight; unsigned int parent, lchild, rc
摘要由CSDN通过智能技术生成

一、例子引出问题

参考书上P144-P149 。在我们计算成绩排名的时候,我们大部分人的成绩都在中等的,还有一小部分在极优和极差中,服从正态分布。因此出现了让有权重的树,为了将经常用到的判断放在前面,因此建立了最优二叉树。

二、存储结构

//赫夫曼树
typedef struct {
	unsigned int weight;
	unsigned int parent, lchild, rchild;
}HTNode,*HuffmanTree;
typedef char** HuffmanCode;//赫夫曼编码保存

、操作

//赫夫曼树
typedef struct {
	unsigned int weight;
	unsigned int parent, lchild, rchild;
}HTNode,*HuffmanTree;
typedef char** HuffmanCode;//赫夫曼编码保存

void Select(HuffmanTree HT,int n,int &s1,int &s2){
	//在赫夫曼数组中的[1,n]数组中寻找parent = 0&&权重最小的两个结点,返回到s1和s2
	int min1 = 99998,indexMin1 = -1;
	int min2 = 99999,indexMin2 = -1;
	for (int i = 1; i <= n  ; i++)
	{
		if (!HT[i].
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值