有没有童鞋可以把书上的用贪心算法实现的哈夫曼编码补全呀?

public class Huffman {
    Bintree tree;
    float weight;
    private Huffman(Bintree tt, float ww) {
        tree = tt;
        weight = ww;
    }
    public static Bintree huffmanTree(float[] f) {
        //生成单结点数
        int n = f.length;
        Huffman[] w = new Huffman[n+1];
        Bintree zero = new Bintree();
        for(int i=0;i<n;i++) {
            Bintree x = new Bintree();
            x.makeTree(new MyInteger(i), zero, zero);
            w[i+1] = new Huffman(x, f[i]);
        }
        //建优先队列
        MinHeap H = new MinHeap();
        H.initialize(w, n);
        //反复合并最小频率树
        for(int i=1;i<n;i++) {
            Huffman x = (Huffman) H.removeMin();
            Huffman y = (Huffman) H.removeMin();
            Bintree z = new Bintree();
            z.makeTree(null, x.tree, y.tree);
            Huffman t = new Huffman(z, x.weight+y.weight);
            H.put(t);    
        }
        return ((Huffman) H.removeMin()).tree;
    }
}

书上只有这么点,有些类和方法都没有写,自己算法太弱了,明天就要考试了(伤心)

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题