繁体   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