`

二叉查找树之插入算法

阅读更多
package com.pb.datastructure.find;

/**
 * 二叉查找树之插入算法
 * @author Administrator
 */
public class BinarySortTree {
	private static BinarySortTree tree = new BinarySortTree();
	private Node root;//根結點
	public void add(int data){
		if(null==root){
			root=new Node(data,null,null);//如果根结点为空,直接插入根结点
		}else{
			addTree(root,data);
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		createTree();//创建二叉查找树
		System.out.println("插入节点17");
		tree.add(17);
		tree.show();

	}
	/**
	 * 插入节点
	 * @param root
	 * @param data
	 */
	private void addTree(Node root,int data){
		if(root.data>data){
			if(root.left==null){
				root.left=new Node(data,null,null);//如果根节点左子树为空,则直接插入左子树
			}else{
				addTree(root.left,data);
			}
		}else{
			if(root.right==null){
				root.right=new Node(data,null,null);//如果根节点的右子树为空,则直接插入右子树
			}else{
				addTree(root.right,data);
			}
		}
	}
	/**
	 * 控制台显示
	 */
	public void show(){
		System.out.println("中序遍历结果为:");
		showTree(root);
	}
	/**
	 * 显示二叉树
	 * @author Administrator
	 */
	public void showTree(Node node){
		if(node.left!=null){
			showTree(node.left);
		}
		System.out.println(node.data+" ");
		if(node.right!=null){
			showTree(node.right);
		}
	}
/**
 * 构建二序查找树
 * @author Administrator
 *
 */
	public static void createTree(){
		tree.add(15);
		tree.add(12);
		tree.add(9);
		tree.add(14);
		tree.add(13);
		tree.add(19);
		tree.add(18);
		tree.add(22);
		tree.add(23);
		
	}
	class Node {
		int data;// 当前节点关键字
		Node left;// 当前节点左节点
		Node right;// 当前节点右节点

		public Node(int data, Node left, Node right) {
			this.data = data;
			this.left = left;
			this.right = right;
		}
	}

}
分享到:
评论

相关推荐

    二叉查找树的插入、删除、遍历和查找等C++实现

    二叉查找树的插入、删除、遍历和查找等操作的C++实现,二叉查找树采用泛型结构

    二叉排序树的建立、插入、查找和删除

    代码里有二叉排序树插入操作递归算法,二叉排序树插入操作非递归算法,二叉排序树删除操作,创建二叉排序树,二叉排序树查找递归算法,二叉排序树查找非递归算法

    二叉查找树的实现

    1、 定义二叉查找树的类。 2、 实验验证如下算法的正确性、各种功能及指标: 1)实现二叉查找树结构; 2) 实现二叉查找树的查找、插入和删除等算法;

    二叉查找树C++实现

    在学习算法过程中自己的代码实现,与大家分享交流。版权所有:miracledan

    数据结构___二叉排序树

    一、实验目的 (1)理解动态查找表的动态生成过程; (2)任意给出一组数(不少于10个),建立对应二叉排序树;...(2)实现二叉排序树的插入算法与查找算法,并建立二叉排序树; (3)进行数据查找和建树过程的比较。

    二叉查找排序树的实现代码

    最近在研究数据结构这本书,自己动手实现的一个二叉查找排序树的类BinSortTree,实现数据的插入,查找,删除,层序遍历,中序遍历等操作,熟悉数据结构的朋友都知道,根据二叉排序树的定义,中序遍历后得到的序列...

    二叉搜索树 查找 构造 插入 删除

    二叉搜索树 编写二叉搜索树类定义。在类定义中只包含构造、插入、输出3个函数的声明 编写二叉搜索树的插入算法 编写代码输出二叉搜索树。 二叉搜索树类定义中增加删除函数的声明,并编写删除算法

    数据结构实验:二叉排序树的插入和删除算法

    因此,在插入之前,首先在二叉排序树中检查待插入的数据元素,如果查找成功,说明树中已经存在这个数据元素,则不再插入:如果查找不成功,说明树中不存在关键字等于给定值的数据元素。 在二叉排序树中删除一个数据...

    数据结构 实现二叉排序树的各种算法(1)

    用函数实现如下二叉排序树算法:(1) 插入新结点(2) 前序、中序、后序遍历二叉树(3) 中序遍历的非递归算法(4) 层次遍历二叉树(5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0) Input 第一行:准备...

    数据结构 二叉排序树算法

    /*用函数实现如下二叉排序树算法: (1) 插入新结点 (2) 前序、中序、后序遍历二叉树 (3) 中序遍历的非递归算法 (4) 层次遍历二叉树 (5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0) (6) ...

    数据结构 实现二叉排序树的各种算法(2)

    用函数实现如下二叉排序树算法: (1) 插入新结点 (2) 前序、中序、后序遍历二叉树 (3) 中序遍历的非递归算法 (4) 层次遍历二叉树 (5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0) (6) ...

    二叉排序树查找

    第五行输出插入iKey后的中序序列 第六行输出查找iKey的结果 第七行输出删除dKey后的中序序列 第八行输出查找dKey的结果 Sample Input 1 12 66 45 78 42 55 32 39 68 95 86 102 29 55 63 78 Sample Output 29 32 ...

    数据结构实验-二叉排序树算法

    掌握二叉排序树的存储方法,实现二叉排序树的创建、查找、插入、删除、平均查找长度等基本操作。 三、实验内容及要求 1、构造二叉排序树的存储结构。 2、实现创建、查找、插入、删除、平均查找长度等操作。

    动态查找利用二叉排序树完成动态查找表

    利用二叉排序树完成动态查找表的建立、指定关键字的查找、插入与删除指定关键字结点。 算法输入:指定一组数据。...算法输出:显示二叉排序树的中序遍历结果、查找成功与否的信息、插入和删除后的中序遍历结果(排序结果

    二叉排序树

    二叉树基本操作,包括实现二叉排序树的查找、插入、构造和删除等算法,使用二叉排序树。

    数据结构课程设计二叉排序树的实现

    4)分别用二叉排序树和数组去存储一个班(50 人以上)的成员信息(至少包括学号、姓名、成绩 3 项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 5) 格式就要按照我们作业的要求,对数据测试,分析,总结...

    二叉排序树的建立,查找,插入,删除操作.cpp

    二叉排序树的建立,插入,删除,查找。

    二叉查找树算法.zip

    常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...

    二叉排序树创建-查找-删除

    二叉排序树创建-查找-删除,算法数据结构基础篇章,可供创建二叉排序树后对其进行插入-查找-删除等操作。

    二叉排序树与平衡二叉树的实现

    二叉排序树(又称二叉查找树):(1)若左子树不空,则左子树上所有节点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有节点均大于它的根结点的值;(3)它的左右子树分别为二叉排序树。 二叉平衡树:若...

Global site tag (gtag.js) - Google Analytics