我创建了一个基本树,其中所有节点都有一个名称和一组子节点。
<?php
$one=$_GET['number'];
if(empty($one)) {
echo "Can't be blank";
$a['result']='null';
$a['error'] = 'No value!!';
} else {
if(is_numeric($one)) {
$show=$one*2;
$arr = array(
'show'=>$show
);
header('Content-Type:application/json');
echo json_encode($arr);
exit();
// echo $show;
} else {
echo "NaN";
$a['result']='null';
$a['error']='nan';
}
}
?>
并使用此课程
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);
}
这对我来说很有意义,但我想要树的直观表示,以便我可以快速测试,看看孩子和节点是否在正确的位置。
或类似的东西。
答案 0 :(得分:5)
打印树的快速而肮脏的方法包括向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 + (the number of connections between the node and the root)
。它决定了节点在输出中缩进的程度。
然后你可以通过打印根打印树(根的级别为1
):
a.print(1);
获得这样的输出:
root
n1
n2
n3
n4
n5
答案 1 :(得分:0)
此方法在python中有效,并且是递归的。基本上,它打印每个节点的名称,增加缩进量,然后在每个节点的每个子节点上调用该函数。您必须在for循环之前添加一个if语句,以确定您是否在分支的末尾,因此它不会再次调用该函数。
将其添加到树类。
def display(self,indent=0):
print( (' '*indent)+self.name)
for c in self.children:
c.display(indent+1)