多态二叉搜索树

时间:2011-04-02 22:33:11

标签: java string binary-tree polymorphism

我有两个实现Tree接口的类,NonEmptyTree和EmptyTree。 NonEmptyTree类中的toString()方法应返回一个字符串:key=>value key=>value key>value等... 我不知道如何在结果结束时删除最后一个空格。 编辑:我不能在String类中使用任何方法,我无法将任何内容与null进行比较。

public String toString() {
        String result = "";
        result+=(this.left.toString());
        result+=this.key;
        result+="=>";
        result+=this.value;
        result+=" ";
        result+=this.right.toString();
        return result;
    }

我已经尝试为该类提供一个变量,指示NonEmptyTree实例是否是当前树中最大的,但控制台显示相同的字符串。

例如,字符串看起来像这样:

"7=>seven 10=>ten 12=>twelve 15=>fifteen 16=>sixteen 17=>seventeen 20=>twenty 30=>thirty "

任何帮助将不胜感激。感谢

3 个答案:

答案 0 :(得分:2)

使用String.trim()

return result.trim()

顺便说一句。如果您进行了大量String次添加,最好使用StringBuilder及其方法append(),而不是使用String添加多个+

答案 1 :(得分:2)

public String toString() {
    StringBuilder result = new StringBuilder();
    result.append(this.left.toString());
    result.append(this.key);
    result.append("=>");
    result.append(this.value);
    result.append(" ");
    result.append(this.right.toString());
    return result.toString().trim();
}

答案 2 :(得分:1)

你能简单地加一个'if'吗?见下文:

public String toString() 
{ 
    String result = ""; 
    result+=(this.left.toString());
    result+=this.key; result+="=>";
    result+=this.value; 
    if (this.right!=null)  // Just add this, so it doesn't add an extra space if no right result exists
    {
        result+=" ";
        result+=this.right.toString();
    }
    return result; 
}