国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java哈夫曼樹實例代碼

2019-11-26 14:00:03
字體:
來源:轉載
供稿:網友

本文實例為大家分享了哈夫曼樹java代碼,供大家參考,具體內容如下

package boom; import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Queue; class Node<T> implements Comparable<Node<T>>{  private T data;  private int weight;  private Node<T> left;  private Node<T> right;     public Node (T data,int weight){    this.data = data;    this.weight = weight;  }     public int compareTo(Node<T> other) {    if(this.weight > other.getWeight()){      return -1;    }if(this.weight < other.getWeight()){      return 1;    }    return 0;  }   public T getData() {    return data;  }   public void setData(T data) {    this.data = data;  }   public int getWeight() {    return weight;  }   public void setWeight(int weight) {    this.weight = weight;  }   public Node<T> getLeft() {    return left;  }   public void setLeft(Node<T> left) {    this.left = left;  }   public Node<T> getRight() {    return right;  }   public void setRight(Node<T> right) {    this.right = right;  }       public String toString(){     return "data:"+this.data+";weight:"+this.weight;   } } public class huffuman<T> {  static <T> Node<T> create(List<Node<T>> nodes){    while(nodes.size()>1){      Collections.sort(nodes);       Node<T> left = nodes.get(nodes.size()-1);      Node<T> right = nodes.get(nodes.size()-2);      Node<T> parent = new Node<T>(null,left.getWeight()+right.getWeight());      parent.setRight(right);      parent.setLeft(left);      nodes.remove(left);      nodes.remove(right);      nodes.add(parent);    }    return nodes.get(0);    }  static<T> List<Node<T>> breadth(Node<T> root){    List<Node<T>> list = new ArrayList<Node<T>>();    Queue<Node<T>> queue = new ArrayDeque<Node<T>>();    queue.offer(root);    while(queue.size()>0){      Node<T> out = queue.poll();      list.add(out);      if(out.getLeft()!=null){        queue.offer(out.getLeft());      }      if(out.getRight()!=null){        queue.offer(out.getRight());      }    }    return list;  }  public static void main(String[] args) {     // TODO Auto-generated method stub     List<Node<String>> list = new ArrayList<Node<String>>();     list.add(new Node<String>("a",7));     list.add(new Node<String>("b",5));     list.add(new Node<String>("c",4));     list.add(new Node<String>("d",2));           Node<String> root =huffuman.create(list);     System.out.println(huffuman.breadth(root)); //   System.out.println(list);   }       }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景东| 米泉市| 荃湾区| 井陉县| 迭部县| 喜德县| 迁西县| 万安县| 都江堰市| 安泽县| 天长市| 邵武市| 海阳市| 行唐县| 黄梅县| 老河口市| 汝南县| 威宁| 河曲县| 团风县| 岚皋县| 乌拉特后旗| 乌审旗| 丽水市| 宁乡县| 石首市| 大丰市| 湖南省| 日照市| 中山市| 廉江市| 吉林省| 贵南县| 武宣县| 汝阳县| 班玛县| 静宁县| 前郭尔| 饶河县| 临安市| 贺兰县|