文字に 0 と 1 を割り当てる方法を見つけるのに苦労しています。すべてのノードを最初に最高の優先度を持つツリーにするように、優先度キューを修正しました。各文字に値を割り当てる方法についてのアイデアがありません。inorder traversal を使用することを考えていましたが、ビットを文字に追加するときにそのコードがどのように見えるかについて行き詰まっています。すべてのヘルプは大歓迎です! 私のノードクラスは以下の通りです:
private class Node{
Node right;
Node left;
Node parent;
char letter;
int value;
String binaryValue = "";
private Node(char c, int in, Node parent, Node left, Node right){
letter = c;
value = in;
this.left = left;
this.right = right;
this.parent = parent;
}
@SuppressWarnings("unused")
private void setRight(Node right){
this.right = right;
}
@SuppressWarnings("unused")
private void setLeft(Node left){
this.left = left;
}
private void setParent(Node parent){
this.parent = parent;
}
private Node getParent(){
return parent;
}
@SuppressWarnings("unused")
private void setWeight(int weight){
this.value += weight;
}
private void setBinary(String binary){
binaryValue = binary;
}
private String getBinary(){
return binaryValue;
}
}