我制作了一个基本树,其中所有节点都有一个名称和一组子节点。
public class Tree {
String data;
Tree parent = null;
HashSet children = new HashSet();
public Tree(String nodeName) {
this.data = nodeName;
}
public void parent(Tree parent) {
this.parent = parent
}
public void addAChild(Tree child) {
this.children.add(child);
child.parent(this);
}
并使用这个类
Tree a = new Tree("root");
Tree b = new Tree("n1");
Tree c = new Tree("n2");
Tree d = new Tree("n3");
Tree e = new Tree("n4");
Tree f = new Tree("n5");
a.addAChild(b);
a.addAChild(c);
a.addAChild(d);
d.addAChild(e);
e.addAChild(f);
这对我来说很有意义,但我想要树的可视化表示,以便我可以快速测试以查看子节点和节点是否位于正确的位置。
或类似的东西。
最佳答案
打印树的一种快速而肮脏的方法是将这样的方法添加到您的 Tree
类中:
public void print(int level) {
for (int i = 1; i < level; i++) {
System.out.print("\t");
}
System.out.println(data);
for (Tree child : children) {
child.print(level + 1);
}
}
level
表示节点在树中的层级,定义为1 +(节点与根的连接数)
。它指示节点在输出中缩进多少。
然后可以通过打印根来打印树(根的层级为1
):
a.print(1);
得到这样的输出:
root
n1
n2
n3
n4
n5
关于java - 如何直观地打印非二叉树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33383473/