【问题标题】:Huffman tree string representation霍夫曼树字符串表示
【发布时间】:2015-04-17 20:17:49
【问题描述】:

我需要对霍夫曼树进行字符串表示。 它使用前序遍历,输出将使用'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 预定义类。

【问题讨论】:

    标签: java recursion tree huffman-code


    【解决方案1】:

    以下代码:

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

    应该是

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

    您不会将结果附加到 treeString。

    【讨论】:

    • 没问题^.^我的措辞答案太糟糕了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多