Java 按照树形结构打印 N 叉树

您所在的位置:网站首页 uvm打印树结构 Java 按照树形结构打印 N 叉树

Java 按照树形结构打印 N 叉树

2023-03-11 11:05| 来源: 网络整理| 查看: 265

在我们完成一棵树的构建之后,如果我们想要看这棵树的结构,不像数组或者 List 等数据结构,我们可以非常方便地用各种方式将其中的所有元素打印出来,对于树而言,这个过程要麻烦得多,我们可以用各种遍历方式得到这棵树的结构,但是终究还是不够直观。

如果我们可以按照树的结构,将其打印出来就好了,那么本文就是一种实现这个目标的思路以供参考。

N 叉树的结构

本文中所用的树的结构是 LeetCode 上所用的树的结构,其定义如下:

public class Node { public int val; public List children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List _children) { val = _val; children = _children; } }; 简单打印

以 {值,子数组} 的方式进行打印。

实现方式

复写 Node 类的 toString () 方法:

@Override public String toString() { return "{" + val + (children==null?"":", " + children) + '}'; } 打印效果

对于 N 叉树:

打印效果如下

{1, [{3, [{5}, {6}]}, {2}, {4}]}

对于 N 叉树:

打印效果如下:

{1, [{2}, {3, [{6}, {7, [{11, [{14}]}]}]}, {4, [{8, [{12}]}]}, {5, [{9, [{13}]}, {10}]}]} 目录层级打印

模拟目录层级的方式进行打印。

实现方式public static void print(Node root) { printHelper(root, "\t"); } private static void printHelper(Node root, String start) { if (root == null) { return; } String mid = start.substring(0, start.lastIndexOf("\t")) + "└---"; System.out.println(mid + root.val); if (root.children == null) { return; } for (Node node : root.children) { printHelper(node, start + "\t"); } } 打印效果

对于 N 叉树:

打印效果如下

└---1 └---3 └---5 └---6 └---2 └---4

对于 N 叉树:

打印效果如下:

└---1 └---2 └---3 └---6 └---7 └---11 └---14 └---4 └---8 └---12 └---5 └---9 └---13 └---10


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3