在 Java 中打印层次二叉树
要打印二叉树,以文本表示形式显示其层次结构,您可以使用 Builder图案。此模式允许您逐步构建类似树的输出。
一种方法是创建一个自定义 TreeNode 类来表示树中的每个节点:
public class TreeNode<A extends Comparable> { TreeNode<A> left, right; A data; }
要打印树,您可以使用递归辅助函数来构建树的字符串表示形式:
public String toString() { StringBuilder builder = new StringBuilder(); print(builder, "", ""); return builder.toString(); } private void print(StringBuilder builder, String prefix, String childrenPrefix) { builder.append(prefix).append(data).append('\n'); if (left != null) { left.print(builder, childrenPrefix + "├── ", childrenPrefix + "│ "); } if (right != null) { right.print(builder, childrenPrefix + "└── ", childrenPrefix + " "); } }
这里,prefix 表示当前节点的前缀,childrenPrefix 表示其子节点的前缀。该函数以适当的前缀缩进递归地打印每个子节点。
通过在根节点上调用 toString(),您可以获得整个树的层次表示:
TreeNode<Integer> root = new TreeNode<>(4); root.left = new TreeNode<>(2); root.right = new TreeNode<>(5); System.out.println(root.toString());
这将输出:
4 ├── 2 └── 5
以上是如何在 Java 中以分层形式打印二叉树?的详细内容。更多信息请关注PHP中文网其他相关文章!