用java程式碼實現二叉樹的遍歷演算法
二叉樹的遍歷可以採用遞迴演算法來實現,遍歷方式有三種:先序遍歷,中序遍歷,後序遍歷。
下面是一個例子:
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,不足之處,歡迎各位大神批評指正。