题目描述 哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入描述: 输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000 ...
分类:
其他好文 时间:
2018-01-10 21:36:43
阅读次数:
161
一、准备知识 1、Huffman树 Huffman树是一类带权路径长度WPL最短的二叉树,中文名叫哈夫曼树或最优二叉树。 相关概念: 结点的路径长度:从根结点到该结点的路径上分支的数目。 树的路径长度:树中每个结点的路径长度之和。 树的带权路径长度:树中所有叶子结点的带权路径长度之和。 构造Huff ...
分类:
编程语言 时间:
2018-01-08 13:29:14
阅读次数:
179
【CF884D】Boxes And Balls 题意:有n个箱子和若干个球,球的颜色也是1-n,有ai个球颜色为i,一开始所有的球都在1号箱子里,你每次可以进行如下操作: 选择1个箱子,将里面所有的球拿出来,分成k部分(你可以令k=2或3),将每一部分都放到一个空箱子中。花费的代价是这个箱子中球的总 ...
分类:
其他好文 时间:
2017-12-24 11:17:07
阅读次数:
137
最近完成了数据结构课程设计,被分到的题目是《哈夫曼编码和解码》,现在在这篇博文里分享一下自己的成果。 我在设计时,在网上参考了很多老师和前辈的算法和代码,向他们表示感谢!他们的成果给了我很多启示和帮助。另外,自己的成品中也还有很多不完善的地方,欢迎批评指正。 课题:哈夫曼编码与解码 C++代码实现 ...
分类:
编程语言 时间:
2017-12-22 14:56:56
阅读次数:
267
构造Huffman 题目 在作业本上分别针对权值集合W=(6,5,3,4,60,18,77)和W=(7,2,4,5,8)构造哈夫曼树,提交构造过程的照片 错误回答 错误原因:遵循左边小于根右边大于根的原则 正确回答 HuffmanTree的实现 题目 1、采用静态三叉链表Triment(已经完整实现 ...
分类:
其他好文 时间:
2017-12-16 17:21:22
阅读次数:
243
什么是哈夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,带权路径长度达到最小。带权路径长度最短的树,权值较大的结点离根较近 构造的方法 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; 我的结果 错误原因 构造过程没问题,只是 ...
分类:
其他好文 时间:
2017-12-13 17:15:27
阅读次数:
126
作者:qiqifanqi 原文:http://blog.csdn.net/qiqifanqi/article/details/6038822 ...
分类:
编程语言 时间:
2017-12-13 02:22:02
阅读次数:
242
我们希望建立这样一株二叉树,其叶结点为一组给定的带权结点,称这个树的权重为每个叶子结点到根结点的距离与其权值的乘积的累和,即$$ T.w=\sum_{x\ is\ T's\ leaf}^{}{x.w\cdot x.d} $$其中x.w表示叶结点的权重,而x.d为叶结点的深度。哈夫曼树是所有满足上面条 ...
分类:
其他好文 时间:
2017-12-08 01:35:40
阅读次数:
230
【1】赫夫曼树基本概念 别名“最优树”,是一种带权路径最短的树。 (1)路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 (2)路径长度:路径上的分支数目。 (3)树的路径长度:从树根到一每结点的路径长度之和。 (4)结点的带权路径长度:从该结点到树根之间的路径长度与结点上权值的 ...
分类:
其他好文 时间:
2017-12-05 13:16:05
阅读次数:
108
堆分为最小堆和最大堆。最小堆指的是任意一个节点都有小于他的做儿子和右儿子。最大堆指的是任意一个节点大于打的左儿子右儿子。 最大堆的操作(堆得主要操作就是上滤和下滤) 插入:先将一个节点插入到堆得最后的位置然后上滤,如果他的父亲小于他,就把他父亲的值给他,继续循环,当退出循环的时候就是要插入的节点: ...
分类:
其他好文 时间:
2017-11-28 21:57:20
阅读次数:
206