根据输入的各个叶节点的权值,构建一棵最优树,根据最小带全路径,确定由0,1组成的哈弗曼编码。
首先在一个封装类TNode中构建一棵树的元素,比如权值,左节点,右节点,同时在TNode类中构建了哈弗曼编码值,以及判断节点是否为叶子节点
package霍夫曼编码;/***
*@authorluckid
*@version2014_10_11
**/
/*** 定义Huffman编码的节点*/
public classTNode {/***
*@paramweight
*@paramleft
*@paramright*/
/*protected*/ int weight; //权值
TNode left=null; //左节点
TNode right=null; //右节点
String code=null; //霍夫曼编码/*** 构造一个赫夫曼编码节点的实例。设定左右子树和权值*/
public TNode(intweight,TNode left,TNode right){this.weight=weight;this.left=left;this.right=right;
}/***
*@author刘雁冰as
* @date 2015-02-08 1943
**/
public TNode(intweight){this.weight=weight;
}/*** 判断本节点是否为叶子节点
*@returnboolean 为叶子节点则返回true*/
publi