哈夫曼树的实现(最优二叉树)

给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

实现原理:

1.创建哈夫曼的节点

2.把节点存进List中

3.循环创建哈夫曼树

    3.1.排序List

    3.2.每次从List中取出二个最小权值

    3.3.创建一个新的节点(权值为取出的两个节点的权值和)

    3.4.把取出两个节点接到新的节点上

    3.5.删除取出的那两个节点

    3.6.把新的节点存入List中(反复循环3.1- 3.6直到List中只有一个节点)

哈夫曼树节点

构造哈夫曼树

 

构造过程(第一次写多多包涵)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值