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++实现,二叉查找树采用泛型结构
代码里有二叉排序树插入操作递归算法,二叉排序树插入操作非递归算法,二叉排序树删除操作,创建二叉排序树,二叉排序树查找递归算法,二叉排序树查找非递归算法
1、 定义二叉查找树的类。 2、 实验验证如下算法的正确性、各种功能及指标: 1)实现二叉查找树结构; 2) 实现二叉查找树的查找、插入和删除等算法;
在学习算法过程中自己的代码实现,与大家分享交流。版权所有:miracledan
一、实验目的 (1)理解动态查找表的动态生成过程; (2)任意给出一组数(不少于10个),建立对应二叉排序树;...(2)实现二叉排序树的插入算法与查找算法,并建立二叉排序树; (3)进行数据查找和建树过程的比较。
最近在研究数据结构这本书,自己动手实现的一个二叉查找排序树的类BinSortTree,实现数据的插入,查找,删除,层序遍历,中序遍历等操作,熟悉数据结构的朋友都知道,根据二叉排序树的定义,中序遍历后得到的序列...
二叉搜索树 编写二叉搜索树类定义。在类定义中只包含构造、插入、输出3个函数的声明 编写二叉搜索树的插入算法 编写代码输出二叉搜索树。 二叉搜索树类定义中增加删除函数的声明,并编写删除算法
因此,在插入之前,首先在二叉排序树中检查待插入的数据元素,如果查找成功,说明树中已经存在这个数据元素,则不再插入:如果查找不成功,说明树中不存在关键字等于给定值的数据元素。 在二叉排序树中删除一个数据...
用函数实现如下二叉排序树算法:(1) 插入新结点(2) 前序、中序、后序遍历二叉树(3) 中序遍历的非递归算法(4) 层次遍历二叉树(5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0) Input 第一行:准备...
/*用函数实现如下二叉排序树算法: (1) 插入新结点 (2) 前序、中序、后序遍历二叉树 (3) 中序遍历的非递归算法 (4) 层次遍历二叉树 (5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0) (6) ...
用函数实现如下二叉排序树算法: (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) 格式就要按照我们作业的要求,对数据测试,分析,总结...
二叉排序树的建立,插入,删除,查找。
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
二叉排序树创建-查找-删除,算法数据结构基础篇章,可供创建二叉排序树后对其进行插入-查找-删除等操作。
二叉排序树(又称二叉查找树):(1)若左子树不空,则左子树上所有节点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有节点均大于它的根结点的值;(3)它的左右子树分别为二叉排序树。 二叉平衡树:若...