什么也别说,直接坐代码
package com.inter.structure;
import java.util.Random;
//*
使用Java对二叉树进行排序的二叉树只有一个根节点
*
* @author Hua
*
*/
公共类huabinarytree {
//二叉树的根
私有节点根;
//添加数据
私有数据(int data ) {
if (路线!=空) {
//如果根已经创建,则调用添加元素的方法
root.add (数据;
} else {
根=新节点(数据;
}
}
//输出二叉树的数值
私有语音打印(
root.printNode (;
}
//寻找二叉树
私密性布尔型(int data ) {
返回根. find (数据;
}
//*
*测试
*/
publicstaticvoidmain (字符串[ ] args ) {
huabinarytreeroot=newhuabinarytree (;
//我们生成50个随机数,保存在二叉树中
int[] intArray=new int[50];
for(intI=0; i intArray.length; I ) {
返回//0以上小于n的随机数
int temp=new Random ().nextint ) ) 100;
intArray[i]=temp;
根.添加(temp;
}
System.out.println ('要搜索的数组元素为' intArray[20] );
root.find(Intarray[20];
根.打印(;
}
//*
*元素体系
*
* @author Hua
*
*/
类节点{
私有内数据;
私有节点左; //左边的孩子树
私有节点权限; //右边的子树
公共节点(输入数据) {
this.data=data;
}
//添加元素
公共语音添加(int data ) {
//如果根大于传递的数值
if(this.datadata ) {
if(this.left==null ) {
left=new node (数据;
} else {
(左子树出现数值后,进行递归,继续向左搜索
lft.add (数据;
}
} else {
if(this.right==null ) {
right=new node (数据;
} else {
right.add (数据;
}
}
}
//按中序输出二叉树
私密void打印节点
System.out.print ('已排序二叉树: ';
if(this.left!=空) {
//递归调用最左边的数值(即直到找到最小的数值)
this.left.printNode (;
}
system.out.print(this.data ',';
if(this.right!=空) {
this.right.printNode (;
}
}
//查找指定的元素
公共布尔型(int data ) {
system.out.println (happen ' this.data );
//找到此数值后,返回true
if(data==this.data ) {
返回真;
}elseif(datathis.data ) )。
//因为要找的数值很大,所以向右找
if(right==null )//找到最后一边并返回false
返回假;
}
return right.find (数据;
} else {
if(left==null ) (/找到了最左边
返回假;
}
return left.find (数据;
}
}
}
}