二叉树的三种遍历方式

//中序遍历  
public void printNode(){
    if (this.left!=null){        
        this.left.printNode();
    }
    System.out.print(this.data+"->");
    if (this.right!=null){
        this.right.printNode();
    }
}
中序遍历,用根节点调用printNode方法,注意this关键字为当前调用者,即第一次调用者为root,
     同时,在生成其他节点时用了new创建了新的对象,所以程序会完全遍历。

     思想是只有当左子树为空时才输出节点

 

//后序遍历
public void printBNode(){
if (this.left!=null){
this.left.printBNode();
}
if (this.right!=null){
this.right.printBNode();
}
System.out.print(this.data+"->");
}
后序遍历,思想是只有当左子树和右子树都为空时才输出节点

//前序遍历
public void printFNode(){
if (this.left != null){
System.out.print(this.left.data+"->");
this.left.printFNode();
}
if (this.right!=null){
System.out.print(this.right.data+"->");
this.right.printFNode();
}
}
前序遍历:思想是首先输出根节点,然后当左子树或右子树不为空时输出节点

posted @ 2019-03-15 10:07  文不知所起  阅读(553)  评论(0)    收藏  举报