簡體   English   中英

預打印帶有縮進的二叉樹

[英]Preorder printing Binary Tree with indentations

如何對每個后續級別預打印帶有縮進(3個空格)的二叉樹。 在這一點上,我正在使用輔助方法來遞歸地打印樹,但是我不確定如何編寫縮進。 這是我到目前為止的內容:

public void print() {
      printPreorder(root);
      System.out.println();
}

private void printPreorder(BinaryTreenode<E> node) {
      System.out.println(node.getData() + " ");
      if (node.getLeft() != null) {
            printPreorder(node.getRight());
      }
      if (node.getRight() != null) {
            printPreorder(node.getRight());
      }
}

我立即想到的是放置一個計數器,並在每次遞歸調用該方法時使它遞增,然后為每個增量縮進三個空格,但是我不確定這是執行此操作的最佳方法。

您正在朝正確的方向前進。 這是一些一般的偽代碼:

void print(node) {
  print(node, "")
}

private void print(node, indent) {
  if(node is null) return
  output(indent + node.data)
  print(node.left, indent + "  ")
  print(node.right, indent + "  ")
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM