对于一组给定的叶子结点,他们的权值集合为w={4,2,1,7,3},给出由此集合构造哈夫曼树的过程
1条回答 默认 最新
- 吴NDIR 2023-02-06 18:54关注
import java.util.PriorityQueue; public class HuffmanTree { private static class Node implements Comparable<Node> { int value; Node left; Node right; Node(int value) { this.value = value; } @Override public int compareTo(Node o) { return this.value - o.value; } } public static Node buildHuffmanTree(int[] w) { PriorityQueue<Node> queue = new PriorityQueue<>(); for (int weight : w) { queue.offer(new Node(weight)); } while (queue.size() > 1) { Node left = queue.poll(); Node right = queue.poll(); Node parent = new Node(left.value + right.value); parent.left = left; parent.right = right; queue.offer(parent); } return queue.poll(); } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度
- ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
- ¥15 再不同版本的系统上,TCP传输速度不一致
- ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
- ¥15 DIFY API Endpoint 问题。
- ¥20 sub地址DHCP问题