();
/*多余
public char[] getLetter() {
return letter;
}
public void setLetter() {
this.letter = letter;
}
public int[] getWeight() {
return weight;
}
public void setWeight(int[] weight) {
this.weight = weight;
}
*/
//用一个HuffmanNode最小堆(Java可用现成的最优队列)帮助建立HuffmanTree;
public void creatHuffmanTree(){
//将基本元素加入优先队列
for(int i=0;iHuffmanNode tempHuffmanNode = new HuffmanNode(
weightList.get(i) , letterList.get(i));
nodePriorityQueue.add(tempHuffmanNode);
}
HuffmanNode tempLeftHuffmanNode = null;
HuffmanNode tempRightHuffmanNode = null;
HuffmanNode tempParentHuffmanNode = null;
while( nodePriorityQueue.size()!=1 ){
tempLeftHuffmanNode = nodePriorityQueue.poll();
tempRightHuffmanNode = nodePriorityQueue.poll();
tempParentHuffmanNode = new HuffmanNode(
tempLeftHuffmanNode.getWeight()+tempRightHuffmanNode.getWeight());
//设置节点指向
tempParentHuffmanNode.setLeftChildNode(tempLeftHuffmanNode);
tempParentHuffmanNode.setRightChildNode(tempRightHuffmanNode);
tempLeftHuffmanNode.setParentNode(tempParentHuffmanNode);
tempRightHuffmanNode.setParentNode(tempParentHuffmanNode);
//父节点放入优先队列
nodePriorityQueue.add(tempParentHuffmanNode);
}
huffmanRootNode = nodePriorityQueue.poll();
code(huffmanRootNode);
}
public