1.BinaryTree.java
/**
* 前序遍歷二叉樹。先根結點,再左結點,
* 如無再右結點,如此遞歸至搜索完畢。
*/
package com.binarytree;
public class BinaryTree {
int data;
BinaryTree leftpoiter;
BinaryTree rightpoiter;
BinaryTree(int data) {
this.data = data;
leftpoiter = null;
rightpoiter = null;
}
public void insertTree(BinaryTree root, int data) {
if (data >= root.data) {
if (root.rightpoiter == null) {
root.rightpoiter = new BinaryTree(data);
} else {
insertTree(root.rightpoiter, data);
}
} else {
if (root.leftpoiter == null) {
root.leftpoiter = new BinaryTree(data);
} else {
insertTree(root.leftpoiter, data);
}
}
}
}
2.BinaryTreeTest.java
package com.binarytree;
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]);
System.out.print("二叉樹的中的數據: ");
for(int i=1;i<data.length;i++){
root.insertTree(root,data[i]);
System.out.print(data[i-1]+";");
}
System.out.println(data[data.length-1]);
int key=Integer.parseInt(args[0]);
if(b.searchkey(root,key))
{
System.out.println("找到了:"+key);
}
else
{
System.out.println("沒有找到:"+key);
}
}
public boolean searchkey(BinaryTree root, int key)
{
boolean bl=false;
if(root==null)
{
bl=false;
return bl;
}
else if(root.data==key)
{
bl=true;
return bl;
}
else if(key>=root.data)
{
return searchkey(root.rightpoiter,key);
}
return searchkey(root.leftpoiter,key);
}
}