二叉排序树的插入创建与查找

import java.util.Scanner;


public class BinarySortTree{
	  private static int flag=0;
	  //定义结点
	 public  static class Node{
		private int data;
		private Node left=null;
		private Node right=null;
		public Node(int data){
			this.data=data;
		}
		//用插入算法创建二叉查找树
		public static void insert(Node node,int data){
			if(data>node.data){
				if(node.right==null){
					node.right=new Node(data);
				}else{
					insert(node.right,data);
				}
			}else if(data<node.data){
				if(node.left==null){
					node.left=new Node(data);
				}else{
					insert(node.left,data);
				}
			}
		}
		
		//中序遍历输出
		public static void midPrint(Node root){
					
			if(root.left!=null){
				midPrint(root.left);		
			}
			System.out.print(root.data+" ");
			if(root.right!=null){
				midPrint(root.right);				
			}
		}
		
		//查找函数
		public static void search(Node root,int data){
			//System.out.println(root.data);
			if(root.data ==data){
				flag=1;
			}

			if(data>root.data && root.right!=null ){			
					search(root.right,data);
			}
			if(data<root.data && root.left!=null){				
					search(root.left,data);					
			}		
		}
		
		public static void main(String[] args) {
			//{37,56,05,13,19,21, 64, 88, 75,80,92}
			int[] a={37,56,05,13,19,21, 64, 88, 75,80,92};
			System.out.println("要创建的数组为:{37,56,05,13,19,21, 64, 88, 75,80,92}");
			Node root=new Node(37);
			for(int i=1;i<a.length;i++){
				insert(root,a[i]);
			}
			System.out.println("创建好的二叉排序树中序遍历结果为:");
			midPrint(root);
			System.out.println("请输入要查找的数字:");
			int n=3;
			Scanner in=new Scanner(System.in);
			while(n-->0){
				int data=in.nextInt();
				search(root,data);
				if(flag==1){
					System.out.println("查找成功");
				}else{
					System.out.println("查找失败");
				}
				flag=0;
			}
		}
	}
}

《二叉排序树的插入创建与查找》

    原文作者:二叉查找树
    原文地址: https://blog.csdn.net/SJshenjian/article/details/53453736
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞