我已經構建了一個splay樹,並且我試圖按順序將其打印出來,以便當您將頭轉向左側時,可以以正常方式查看樹。我寫了下面的代碼,它一定程度上正確輸出樹,但它在最右邊的節點上增加了額外的空間,它並不適用於所有的子節點應放置在根節點下添加空格:顯示Splay樹的方法
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--;
}
}
我覺得這可能是我的遞歸或我的縮進添加和減法的位置的錯誤。
你能展示一些你所看到的樣品輸出? –