Java 哈夫曼树字符串表示法
我需要做一个哈夫曼树的字符串表示。 它使用预顺序遍历,输出将生成一个字符串,使用“I”(对于内部节点)和“L”(对于叶节点)后跟叶节点字符Java 哈夫曼树字符串表示法,java,recursion,tree,huffman-code,Java,Recursion,Tree,Huffman Code,我需要做一个哈夫曼树的字符串表示。 它使用预顺序遍历,输出将生成一个字符串,使用“I”(对于内部节点)和“L”(对于叶节点)后跟叶节点字符 public static String getTreeString(final BinaryNodeInterface<Character> root) { String treeString=""; if(root == null)
public static String getTreeString(final BinaryNodeInterface<Character> root)
{
String treeString="";
if(root == null)
return "";
if(root.isLeaf())
treeString = treeString + "L" + root.getData();
else
{
treeString = treeString + "I";
getTreeString(root.getLeftChild());
getTreeString(root.getRightChild());
}
return treeString;
}
公共静态字符串gettreString(最终二进制节点接口根)
{
字符串treeString=“”;
if(root==null)
返回“”;
if(root.isLeaf())
treeString=treeString+“L”+root.getData();
其他的
{
treeString=treeString+“I”;
gettreString(root.getLeftChild());
gettreString(root.getRightChild());
}
返树;
}
当我调试程序时,它会执行并创建正确的字符串,但由于String treeString=“”,它无法保存方法开头的代码>
所需输出:iILailbilcldle
我的输出:I
此外,我不允许使用任何全局/实例变量或任何Java预定义类。以下代码:
getTreeString(root.getLeftChild());
getTreeString(root.getRightChild());
应该是
treeString += getTreeString(root.getLeftChild());
treeString += getTreeString(root.getRightChild());
您不需要将结果附加到treeString中。没问题。^我的回答太糟糕了。