Bitte helfen Sie mir meinen Code zu beheben.toString-Methode für binäre Suchbaum
Für die toString
Verfahren wird die Zeichenfolge sollte als
{currentData, leftSubtree, rightSubtree}
Ein leerer Baum formatiert werden soll eine leere Menge von Brackets {}
zurückzukehren.
für die JUnit-Test Ich erhalte:
Expected: {5, {0, {-5, {}, {}}, {3, {}, {}}}, {10, {7, {}, {}}, {13, {}, {}}}}
Actual: {5, {0, {-5, {}, {3, {}, {}, {10, {7, {}, {13, {}, {}, {}}
Dies ist mein Code:
public String toString() {
StringBuffer string = new StringBuffer("{");
toString(root, string);
string.append("}");
return string.toString();
}
private void toString(BSTNode<T> node, StringBuffer string) {
if (node != null) {
string.append(node.getData());
if (node.getLeft() != null) {
string.append(", " + "{");
toString(node.getLeft(), string);
}
if (node.getRight() != null) {
string.append(", " + "{");
toString(node.getRight(), string);
}
}
string.append(", {}");
}
Dank !!
Haben Sie den Code in Ihrem IDE-Debugger verfolgt? Was siehst du? –
Du schreibst niemals eine Endklammer aus, nachdem du rekursiv bist. –
Verwende 'StringBuilder', nicht' StringBuffer'. – Andreas