Java 实现二叉树排序和查找
来源:互联网 发布:手机百度软件 编辑:程序博客网 时间:2024/06/11 21:12
啥都不说了,直接上代码
package com.inter.structure;import java.util.Random;/** * 使用Java实现二叉树排序 二叉树只有一个根节点 * * @author Hua * */public class HuaBinaryTree {// 二叉树的根private Node root;// 添加数据private void add(int data) {if (root != null) {// 如果根已经创建,就调用元素的添加方法root.add(data);} else {root = new Node(data);}}// 输出二叉树的数值private void print() {root.printNode();}// 查找二叉树private boolean find(int data) {return root.find(data);}/** * 测试 */public static void main(String[] args) {HuaBinaryTree root = new HuaBinaryTree();// 我们生成50个随机数,然后保存在二叉树中int[] intArray = new int[50];for (int i = 0; i < intArray.length; i++) {// 返回一个大于等于0小于n的随机数int temp = new Random().nextInt(100);intArray[i] = temp;root.add(temp);}System.out.println("要查找的数组元素是:" + intArray[20]);root.find(intArray[20]);root.print();}/** * 元素类 * * @author Hua * */class Node {private int data;private Node left;// 左子树private Node right;// 右子树public Node(int data) {this.data = data;}// 添加元素public void add(int data) {// 如果根大于传递进来的数值if (this.data > data) {if (this.left == null) {left = new Node(data);} else {// 如果左子树有数值了,就进行递归,继续往左边找left.add(data);}} else {if (this.right == null) {right = new Node(data);} else {right.add(data);}}}// 中序输出二叉树private void printNode() {System.out.print("排序后的二叉树:");if (this.left != null) {// 递归调用,直到找到最左边的数值(即最小数值)this.left.printNode();}System.out.print(this.data + ",");if (this.right != null) {this.right.printNode();}}// 查找指定元素public boolean find(int data) {System.out.println("happen " + this.data);// 如果找到了这个数值,就返回trueif (data == this.data) {return true;} else if (data > this.data) {// 要找的数值比较大,就往右找if (right == null) {// 找到了最后边,返回falsereturn false;}return right.find(data);} else {if (left == null) {// 找到了最左边return false;}return left.find(data);}}}}
0 0
- Java 实现二叉树排序和查找
- 二叉查找树实现排序
- java 二叉查找树(搜索树、排序树)实现
- 二叉查找树(排序树)与java实现
- Java实现二叉排序(查找)树的操作
- JAVA二叉查找树实现
- java实现二叉查找树
- 二叉查找树 java实现
- 二叉查找树 Java实现
- java实现二叉查找树
- 二叉查找树Java实现
- Java 实现二叉查找树
- Java实现二叉查找树
- java实现二叉查找树
- java实现二叉查找树
- java实现二叉查找树
- Java实现二叉查找树
- Java实现二叉树查找
- Android armeabi armeabi-v7a
- wxWidgets因为unicode编译出错
- 【ObjC那点儿事儿】Category和Protocol
- Spring MVC 基础教程,快速入门,深入分析
- 存储过程
- Java 实现二叉树排序和查找
- 系统版本
- FLEX运行提示找不到对应的html文件
- 优化Java堆大小的5个技巧
- 自动让钱生钱方法100%安全稳定
- ios下自定义时间选择控件
- android
- brk(), sbrk() 用法详解
- 浅谈-----接口