有关哈夫曼树的介绍,请参考这篇博客【算法总结】哈夫曼树和哈夫曼编码,具体实现代码如下:
import java.util.PriorityQueue;
public class HuffmanCoding {
public static void main(String[] args){
int[] nums = {
35,25,15,15,10};
String[] arr = {
"A","B","C","D","E"};
huffmanCoding(nums,arr);
System.out.println(huffmanCoding(nums));
}
/**
* 给定待编码字符串数组和出现的频率,构建哈夫曼树,并打印输出哈夫曼编码(注意哈夫曼编码不唯一)
* @param nums 待编码字符串出现的频率
* @param arr 待编码字符串数组
*/
public static void huffmanCoding(int[] nums,String[] arr){
HuffmanNode[] nodes