哈夫曼树

什么是哈弗曼树?
WPL最短。

创建哈夫曼树步骤:
1.将数从小到大排序。
2.取出根节点权值最小的两棵树。
3.组成一颗新二叉树,新的二叉树的根节点是前两棵树的结点的和。
4.再将新的数,以根节点的权值大小再次排序,不断重复。


//为了让Node对象持续排序,实现Collections下的Comparable接口
class Node implements Comparable<Node>{
    int value;  //结点权值
    Node left;
    Node right;

    public Node(int value){
         this.value=value;
    }

    @Override
    public String toString() {
        return "Node{" +
                "value=" + value +
                '}';
    }

    @Override
    public int compareTo(Node o) {

      //从小到大排序
        //conh大到小;加负号
        return this.value-o.value;
    }
    //遍历
    public  void preOrder(){
        System.out.println(this);
        if(this.left!=null){
            this.left.preOrder();
        }
        if(this.right!=null){
            this.right.preOrder();
        }
    }

}


//为了让Node对象持续排序,实现Collections下的Comparable接口
class Node implements Comparable<Node>{
    int value;  //结点权值
    Node left;
    Node right;

    public Node(int value){
         this.value=value;
    }

    @Override
    public String toString() {
        return "Node{" +
                "value=" + value +
                '}';
    }

    @Override
    public int compareTo(Node o) {

      //从小到大排序
        //conh大到小;加负号
        return this.value-o.value;
    }
    //遍历
    public  void preOrder(){
        System.out.println(this);
        if(this.left!=null){
            this.left.preOrder();
        }
        if(this.right!=null){
            this.right.preOrder();
        }
    }

}

发布了48 篇原创文章 · 获赞 0 · 访问量 461
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览