1、节点类

//节点类
package com.hang.demo01;public class Node implements Comparable<Node>{int value;Node left;Node right;public Node(int value) {this.value = value;}@Overridepublic int compareTo(Node node) {return this.value - node.value;}@Overridepublic String toString() {return "Node{" +"value=" + value +'}';}
}

2、主类

package com.hang.demo01;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class TestHuffmanTree {public static void main(String[] args) {int[] arr = new int[]{3, 7, 8, 29, 5, 11, 23, 14};Node huffmanTree = createHuffmanTree(arr);System.out.println(huffmanTree.value);}//创建哈夫曼树public static Node createHuffmanTree(int[] arr) {//使用数组中的所有元素创建若干个二叉树List<Node> nodes = new ArrayList<>();for (int value : arr) {nodes.add(new Node(value));}//排序Collections.sort(nodes);//将权值最小的两个二叉树取出来while (nodes.size() > 1) {Node left = nodes.get(0);Node rigth = nodes.get(1);//创建一个新的二叉树Node parent = new Node(left.value + rigth.value);//把取出来的两个二叉树移除nodes.remove(left);nodes.remove(rigth);//将新的二叉树方放入原来的二叉树集合nodes.add(parent);}return nodes.get(nodes.size()-1);}
}

数据结构---哈夫曼树的Java实现相关推荐

  1. 数据结构(哈夫曼树,哈夫曼编码)入门篇,JAVA实现

    什么是哈夫曼树 哈夫曼树就是一种最优判定树,举个例子,如下一个判断逻辑 if(s<60) g=1; else if(s<70) g=2 else if(s<80) g=3 else ...

  2. 数据结构---哈夫曼树

    数据结构-哈夫曼树 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> #define N 100 #define INF ...

  3. 【数据结构——哈夫曼树及其应用】

    [数据结构--哈夫曼树及其应用] 一.哈夫曼树的基本概念 二.哈夫曼树的构造算法 (一)哈夫曼树的构造过程 (二)哈夫曼树构造算法的实现 1.初始化 2.创建树 3.完整的创建哈夫曼树代码 三.哈夫曼 ...

  4. 数据结构哈夫曼树实现26个英文字符的编码和译码

    数据结构哈夫曼树实现26英文字符的编码和译码 那么首先什么是哈夫曼树?(知道的略过,直奔下面代码就好!) 在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编 ...

  5. 数据结构--赫夫曼树

    数据结构 –赫夫曼树 文章目录 数据结构 一.一些概念 二.最优二叉树(赫夫曼树) 三.赫夫曼树的构造 四.赫夫曼编码 五.前缀编码 一.一些概念 路径:从树中一个结点到另一个结点之间的分支构成这两个 ...

  6. 《数据结构与算法之哈夫曼树(Java实现)》

    说在前头: 本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,能力有限,文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...

  7. 【数据结构与算法】哈夫曼树的Java实现

    哈夫曼树 最优二叉树也称哈夫曼树,讲的直白点就是每个结点都带权值,我们让大的值离根近.小的值离根远,实现整体权值(带权路径长度)最小化. 哈夫曼算法的思想我认为就是上面讲的,而它的算法实现思路是这样的 ...

  8. 哈夫曼树的java实现_java实现哈夫曼树

    哈夫曼译码,就是将输入的译码还原成对应的字符. 抽象的算法描述:将建立哈夫曼树.实现哈夫曼编码.哈夫曼译码都定义成 子函数的的形式, 然后在主函数中调用它们...... 数据结构课程设计设计题目: 哈 ...

  9. 数据结构 - 赫夫曼树

    wpl最小的就是赫夫曼树(所有叶子节点的带权路径长度之和最小) 写出来两个节点连接,然后循环就可以了 package tree.huffmantree;import java.util.ArrayLi ...

  10. 最优二叉树(哈夫曼树)Java实现

    此篇博客讲最优二叉树也叫哈夫曼树的原理,以及构建步骤,还有哈夫曼编码原理.建议有二叉树基础朋友学习交流.对二叉树基础可以看我的另外一篇博客二叉树的构建以及遍历 文章目录 哈夫曼树引出: 哈夫曼树原理及 ...

最新文章

  1. R语言bioconductor包—maftools的使用
  2. codeplex网站翻译
  3. 【电商】几种电商模式及特点
  4. 数控加工编程计算机的配置,计算机辅助数控加工编程.ppt
  5. WPF DataGrid 在Header中显示行号
  6. java控制面板作用_大师为你分析win7系统打开java控制面板的方法
  7. CSS单位--px,em,rem,rpx区别
  8. 数据分析的法宝---箱形图(Box Plot)
  9. ENVI执行监督分类后分类结果背景也被分类了的解决方案
  10. MA5680T配置指导
  11. 程序员年龄增大后的职业出路是什么?
  12. 无线连接世界 创新驱动中国 《微波射频技术》杂志发布
  13. windows平台下静态库(.lib)和动态库(.dll)使用
  14. java如何循环输出一个表格,Java编程for循环输出俄文字母表
  15. 反弹shell和键盘记录器实现
  16. docker重启 容器自动重启
  17. python计算线段夹角
  18. 计算机主机电源绿黑,台式电脑电源高手维修,短接绿黑线风扇转一下就停。
  19. C语言 赋值抑制字符*
  20. 新来个技术总监,仅花2小时,撸出一个多线程永动任务,看完直接跪了,真牛逼!

热门文章

  1. RMAN 数据库克隆文件位置转换方法
  2. 11/27 记事本
  3. 数据库操作之——约束
  4. Linux ssh服务开启秘钥和密码认证
  5. python基础(初识Python)
  6. PHP查看IP时候能ping通
  7. NDK开发之数组操作
  8. Android消息推送(Android Push Notification)
  9. 寒江独钓——win内核编程读书笔记-1
  10. 白鸦:我印象中的Keso