public class HuffmanTree {
public static void main(String[] args) {
}
public static void huffmancode(String strs){
}
//根据数组构造huffmanTree
public static Node huffmanTree(int[] arrs){
List<Node> nodes=new ArrayList<Node>();
for(int num:arrs){
nodes.add(new Node(num));
}
while(nodes.size()>1){
Collections.sort(nodes);
int min=nodes.get(0).value;
int small=nodes.get(1).value;
Node parent =new Node(min+small);
parent .left=nodes.get(0);
parent .right=nodes.get(1);
parent .value=min+small;
nodes.add(parent);
nodes.remove(0);
nodes.remove(1);
}
return nodes.get(0);
}
}
class Node implements Comparable<Node>{
int value;
Node left;
Node right;
public Node(int value){
this.value=value;
}
public void preOrder(){
System.out.println(this);
if(this.left!=null){
this.left.preOrder();
}
if(this.right!=null){
this.right.preOrder();
}
}
@Override
public String toString() {
return "Node [Value="+value+"]";
}
@Override
public int compareTo(Node o) {
return this.value-o.value;
}
}
赫夫曼树
最新推荐文章于 2021-08-10 18:22:23 发布