私はスプレーツリーを作成しました。頭を左に向けたときに通常の方法でツリーが見えるように、逆に印刷しようとしています。次のコードを記述しましたが、ツリーはある程度正しく出力されますが、右端のノードにスペースが追加され、ルートノードの下に配置する必要のあるすべての子ノードにスペースが追加されるわけではありません。
public void printReverseInOrder() {
if (root != null) {
reverseInOrder(root, 0);
}
else {
System.out.println();
}
}
public void reverseInOrder(BSTnode h, int indent) {
if (h != null) {
for (int i = 0; i < indent; i++) {
System.out.print(" ");
}
indent++;
reverseInOrder(h.right, indent);
reverseInOrder(h.left, indent);
System.out.println(h.data);
indent--;
}
}
再帰またはインデントの加算と減算の配置にエラーがあるように感じます。