Java認證輔導:Java實現二叉樹遍歷算法

  Java實現二叉樹遍歷算法

Java認證輔導:Java實現二叉樹遍歷算法

在JAVA中實現二叉樹,程序如下:

//********************************************************************

//filename:

//purpose: test a binarytree with java

//date: 2002/12/18

//author: flyfan

//ver: 0.1

//********************************************************************

public class BinaryTreeTest

{

public static void main(String args[])

{

BinaryTreeTest b=new BinaryTreeTest();

int data[]={12,11,34,45,67,89,56,43,22,98};

BinaryTree root =new BinaryTree(data[0]);

t(“二叉樹的`中的數據:  ”);

for(int i=1;i《th;i++)

{

rtTree(root,data[i]);

t(data[i-1]+“;”);

}

tln(data[th-1]);

int key=eInt(args[0]);

if(chkey(root,key))

{

tln(“找到了:”+key);

}

else

{

tln(“沒有找到:”+key);

}

}

public boolean searchkey(BinaryTree root, int key)

{

boolean bl=false;

if(root==null)

{

bl=false;

return bl;

}

else if(==key)

{

bl=true;

return bl;

}

else if(key》=)

{

return searchkey(tpoiter,key);

}

return searchkey(poiter,key);

}

}

class BinaryTree

{

int data;

BinaryTree leftpoiter;

BinaryTree rightpoiter;

BinaryTree(int data)

{

=data;

leftpoiter=null;

rightpoiter=null;

}

public void insertTree(BinaryTree root, int data)

{

if(data》=)

{

if(tpoiter==null)

{

tpoiter=new BinaryTree(data);

}

else

{

insertTree(tpoiter,data);

}

}

else

{

if(poiter==null)

{

poiter=new BinaryTree(data);

}

else

{

insertTree(poiter,data);

}

}

}

}

//end

  講解上述各序小,但層次分明,結構嚴謹,如果有數據庫結構知識與C語文能力的JAVA初學者一看就明白,二個方法如同C語文中的函數,一個尋找關鍵字--searchkey 另一個是插入一個結點:insertTree 而class BinaryTree 如同一個C語言中的共同體。

另外這是一個完全的先序遍歷二叉樹的語法。先根結點,再左結點,如無再右結點,如些加歸至搜索完畢。

運行命令行:java BinaryTreeTest intNumber(一個整數)