首页 > 编程知识 正文

二叉排序树的查找(排序二叉树java查找_Java 实现二叉树排序和查找)

时间:2023-05-05 19:14:06 阅读:121091 作者:3309

什么也别说,直接坐代码

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 (数据;

}

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。