数据结构-哈夫曼树的构造和哈夫曼编码06

哈夫曼树的构造和哈夫曼编码06

        哈夫曼编码的代码实现对于初学数据结构的同学可能会有些困难,没有必要灰心,其实没啥,学习就犹如攀登一座又一座的山峰,每当我们攻克一个难点后,回首来看,也不过如此嘛。我们要做的就是不断的去攀越学习上的山峰 不断的超越过去的自己。尤其是我们程序员,不进则退,中国最不缺的就是人,肯定不缺替代你的程序员,没有越老越吃香的程序员,时代在进步,技术在不断换代的更新,但是计算机一些固有的东西仍没有改变,编程语言只是我们手中的武器,我们唯有把内功修炼好,然后拿着利器 可以无往不胜!数据结构和算法就是我们程序员的内功修炼的一方面。
        假设有 n 个权值[W1,W2,….WN],构造有 n 个叶子的二叉树,每个叶子的权值是 n 个权值之一,这样的二叉树可以构造很多个,其中必有一个是带权路径长度最小的,这棵二叉树就称为最优二叉树或哈夫曼树。
1.构造哈夫曼树
下面是我亲手自己构造哈夫曼树的过程(请忽略字的难堪):
在这里插入图片描述
在这里插入图片描述
2. 哈夫曼编码
        首先我们来看这棵构造好的哈夫曼树:(经过左边路径为0,经过右边路径为1)
在这里插入图片描述
则有 A:11 B:001 C:011 D:101 ,后面的你们可自行写出。
WPL(A) = 2x5 = 10;
WPL(B) = 3x5 = 15;
WPL© = 3x4 = 12;
WPL(D) = 3x3 = 9;
WPL(E) = 4x2 = 8;
WPL(F) = 4x2 = 8;
WPL(G) = 4x2 = 8;
WPL(H) = 4x1 = 4;
WPL(I) = 4x1 = 4;
WPL(J) = 4x1= 4;

WPL = WPL(A)+WPL(B)+…+WPL(J) = 82;
所以上图哈夫曼树的带权路径长度 WPL即为82

下一节,用代码实现哈夫曼树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发如雪-ty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值