Java 按照树形结构打印 N 叉树 |
您所在的位置:网站首页 › uvm打印树结构 › Java 按照树形结构打印 N 叉树 |
在我们完成一棵树的构建之后,如果我们想要看这棵树的结构,不像数组或者 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 |