// 先序遍历树
public void printTree(BinaryNode<AnyType> t) {
if (t != null) {
// 根节点
System.out.println(t.element);
// 左子树
printTree(t.left);
// 右子树
printTree(t.right); } }
在这个函数执行过程中,当把左子树遍历完后,遍历右子树的时候,t 为什么 一下就返回到根节点,而不是当前节点
望高手指教,谢谢。
public void printTree(BinaryNode<AnyType> t) {
if (t != null) {
// 根节点
System.out.println(t.element);
// 左子树
printTree(t.left);
// 右子树
printTree(t.right); } }
在这个函数执行过程中,当把左子树遍历完后,遍历右子树的时候,t 为什么 一下就返回到根节点,而不是当前节点
望高手指教,谢谢。
if(t != null){
// 根节点
System.out.println(t.element);
// 左子树
printTree(t.left);
// 右子树
printTree(t.right);
System.out.println(t.element+" : end");
}
}
在这个程序中,对于任何一个节点,都是先打印自己,再是左子树,最后右子树。 x l_x r_x
L_l_x R_l_x L_r_x R_r_x
如上的树,每次输出就是
x
l_x
L_l_x
R_l_x
r_x
L_r_x
R_r_x
public void printTree(BinaryNode<AnyType> t) {
if (t != null) {
// 根节点
System.out.println(t.element);
// 左子树
printTree(t.left);
// 右子树
printTree(t.right);} 6
2 8
1 4
当把4遍历完时,为什么t一下子就变成了6