二叉树的遍历可以采用递归算法来实现,遍历方式有三种:先序遍历,中序遍历,后序遍历。
下面是一个例子:
public class BinTree{
char data; //根节点数据
BinTree left; //左子树
BinTree right; //右字树
public Bintree(char data) //实例化二叉树类
{
this.data=data;
left=null;
right=null;
}
public static void preOrder(BinTree root) { //先根遍历
if(root!=null) {
System.out.print(root..data+"-");
preOrder(root.left);
preOrder(root.right);
}
}
public static void inOrder(BinTree root) { //中根遍历
if(root!=null){
inOrder(root.left);
System.out.print(root.data+"-----");
inOrder(root.right);
}
}
public static void postOrder(BinTree root){ //后根遍历
if(root!=null) {
postOrder(root.left);
postOrder(root.right);
System.out.print(root.data+"-----");
}
}
public static void main(String[ ] str) {
BinTree root =new BinTree('A'); //创建二叉树
root.left = new BinTree('B');
root.right=new BinTree('C') ;
BinTree b=root.left;
b.left =new BinTree('D');
BinTree c=root.right;
c.left =new BinTree('E');
c.right=new BinTree('F');
System.out.println("先根遍历:");
preOrder(root);
System.out.println ();
System.out.println("中根遍历:");
inOrder(root);
System.out.println();
System.out.println("后根遍历:");
postOrder(root);
}
}
这是个简单的例子,本人还是个菜鸟,正在学java,不足之处,欢迎各位大神批评指正。