java哈夫曼树权值计算_JAVA 哈夫曼树权值求和(代码找错)
展开全部
兄弟,你把如下第28行的count++;注释掉,一切问题都可以解决!
自己先琢磨为什么,不懂的再问!import java.util.Arrays;
import java.util.Scanner;
public class a2 {
public static int n, count = 0;
public static int he[] = new int[n + 1];// 预定义权值数组32313133353236313431303231363533e58685e5aeb931333335306162
public static void Huffman(int[] a) {
Arrays.sort(a);// 排序
// System.out.println(a.length);
if (a.length == 1)// 如果长度是1结束递归
{
he[count++] = a[0];
return;
}
if (a.length == 2)// 如果长度是2结束递归
{
he[count++] = a[0] + a[1];
return;
}
else // 长度大于2
{
int b[] = new int[a.length - 1];// 定义一个新数组,用于保存a
he[count++] = a[0] + a[1];
b[0] = he[--count];// 新数组的第一个元素为当前数组的最小的两个数之和
for (int i = 1; i
{
b[i] = a[i + 1];// 赋值除第一个元素之外的值
}
// count++;
Huffman(b);// 递归
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = Integer.parseInt(sc.nextLine());
String s[] = sc.nextLine().trim().split(" ");// 输入n个数
int d[] = new int[n];
for (int i = 0; i
d[i] = Integer.parseInt(s[i]);// 将String转化为int的数组
Huffman(d);// 递归调用
int sum = 0;
for (int i = 0; i
sum += he[i];// 求和
System.out.println(sum);
}
}
java哈夫曼树权值计算_JAVA 哈夫曼树权值求和(代码找错)相关推荐
- java中 byte 取值范围_java中为什么byte的取值范围是-128到+127
概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: ...
- java 程序找错_java代码找错
展开全部 你试一下这个行不行,输入的时候是数字e69da5e6ba903231313335323631343130323136353331333335313138,数字,数字;数字,数字.....的格 ...
- 【数据结构-N】哈夫曼树带权路径计算
那个闪闪发光的人 会在某一天的雨后,不经意地出现在你的迷茫路口. 目录: 哈夫曼树的构建 带权路径长度计算 >>构建 哈夫曼树,又称最优二叉树,是一类带权路径长度最短的树. 构建哈夫曼树的 ...
- raptor阶乘相加流程图_从键盘输入正整数n的值,计算n的阶乘,例如:输入5,输出120。请据此画出程序流程图。 (上传Raptor软件流程图和运行结果的截图)_学小易找答案...
[单选题]对现值指数法来说,当原始投资额现值相等的时候,实质上是( ). [单选题]某公司打算投资一个项目,预计该项目需固定资产投资400万元,预计可使用5年.项目预计流动资产需用额为160万元,流动 ...
- JAVA实现二叉树带权路径长度和_哈夫曼树的构建与最小带权路径长度
注意:哈夫曼树并不唯一,但带权路径长度一定是相同的. 二叉树:每个结点最多含有两个子树的树称为二叉树. 定理:对于具有n个叶子结点的哈夫曼树,共有2n-1个结点. 哈夫曼树介绍 1哈夫曼树的定义 哈夫 ...
- wpl计算方法_【数据结构】树的应用-计算哈夫曼树的WPL值
计算哈夫曼树的WPL值 根据给定的n个权值(非负值),计算所构造哈夫曼树的WPL值. 基本要求: (1)根据给定的数据,建立哈夫曼树: (2)输出每个叶子结点的带权路径长度: (3)输出哈夫曼树的WP ...
- 计算WPL·哈夫曼树构建及带权路径长计算
计算WPL·哈夫曼树构建及带权路径长计算 题目信息 输入 输出 测试样例 解答 想法 题目信息 Huffman编码是通信系统中常用的一种不等长编码,它的特点是:能够使编码之后的电文长度最短. 输入 第 ...
- 给定结点权值,求哈夫曼树的带权路径长度和
1.哈夫曼树概念 一棵树中,从任意一个结点到达另一个结点的通路叫做路径,该路径包含的边的个数称为路径长度,每个结点带有的表示某种意义的值成为权值.从根结点到叶子结点的路径长度乘以叶子节点权值,得到的值 ...
- 哈夫曼编码和带权路径计算
哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树.下面用一幅图来说明. 它们的带权路径长度分别为: 图a: WPL=5*2+7*2+2*2+13*2=54 图b: WPL=5*3+2*3+7* ...
最新文章
- dataframe两个表合并_史上代码最少的工作表拆分,仅需5行,不可思议
- 设计模式 -(5)装饰模式(结构型)
- Wannafly挑战赛22游记
- SAP WebIDE一个和Destination相关的问题 - OData下拉菜单里的Destination从哪里来的
- tar打包的时候忽略一些目录
- CSS 滤镜学习小结
- python 中的 __name__
- 面向项目(六)—— 错误(异常)信息的书写
- 虹科案例|基于SOLA光源的高通量Spike展示平台加速新冠病毒疫苗研制
- bulma css 中文,Bulma CSS - CSS类
- qq邮箱中的发件服务器是什么格式,qq邮箱的SMTP服务器是什么
- 02.Android崩溃Crash库之App崩溃分析
- A系统单点登录B系统
- HTML(HBuilder)作业题4- 隔行换色(jquery)
- Lync Server 2010 呼叫寄存配置和启用
- 通过一个场景实例 了解前端处理大数据的无限可能
- 2023NHOI数三角形题解
- 不用登陆密码也能进路由器,适用于TP、磊科、腾达
- [蓝桥杯][算法提高VIP]阮小二买彩票
- 马云正式卸任!发表“退休”感言!