且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【算法与数据结构】查找二叉树的实现

更新时间:2021-12-30 02:56:18

(转载请注明出处:http://blog.csdn.net/buptgshengod

1.题目介绍

    二叉树是一种基本的数据结构。查找二叉树是一种方便与查找,删除,插入等功能的二叉树,它要求每个父节点的左分支小于父节点,右分支大于父节点。下面我们来实现下面这个查找二叉树。
【算法与数据结构】查找二叉树的实现

2.java代码实现

public class BinaryTree {
    private Node root;
	public BinaryTree(){
    	root=null;
    }
	/*
	 * 定义内部节点
	 */
	public class Node{
		private Node left;
		private Node right;
		private int data;
		public Node(int data){
			    this.left = null;
	            this.right = null;
	            this.data = data;
		}
	}
	/*
	 * 生成二叉树的函数
	 */
	public void BuildTree(Node node,int data){
		if(root==null){
			root=new Node(data);
		}
		else{
			if(data<node.data){
				if(node.left==null){
					node.left=new Node(data);
				}
				else{
					BuildTree(node.left,data);
				}
			}
			else{
				if(data>node.data){
					if(node.right==null){
						node.right=new Node(data);
					}
					else{
						BuildTree(node.right,data);
					}
				}
				
			}
			
		}
		
	}
	/**
     * 前序遍历
     * @param node
     */
    public void preOrder(Node node){
        if(node != null){
            System.out.println(node.data);
            preOrder(node.left);
            preOrder(node.right);
        }
    }

	
	public static void main(String[] args){
    	int[] a={1,4,26,8,77,43,75,};
        BinaryTree tree=new BinaryTree(); 
    	for(int i=0;i<a.length;i++){
    		tree.BuildTree(tree.root, a[i]);
    	}
    	tree.preOrder(tree.root);
		
    }
}

前序遍历输出结果
【算法与数据结构】查找二叉树的实现