霍夫曼树串表示

时间:2015-04-17 20:17:49

标签: java recursion tree huffman-code

我需要对霍夫曼树进行字符串表示。 它使用预先遍历,输出将使用' I' (对于内部节点)和' L' (对于叶节点)后跟叶节点字符。

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;

}

当我调试程序时,它会通过并创建正确的字符串但由于方法开头的String treeString="";而无法保存它。

所需的输出:IIILaILbILcLdLe

我的输出:I

此外,我不允许使用任何全局/实例变量或任何Java预定义类。

1 个答案:

答案 0 :(得分:3)

以下代码:

getTreeString(root.getLeftChild());
getTreeString(root.getRightChild());

应该是

treeString += getTreeString(root.getLeftChild());
treeString += getTreeString(root.getRightChild());

您不会将结果附加到treeString。