`
luliangy
  • 浏览: 96864 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java实现二叉排序树

阅读更多

   这是一个用Java做的二叉树排序!比较简单。

/**
 * 二叉树排序--将一个整型数组中的元素存进二叉排序树中再查找元素;
 * @author luliangy
 *
 */
public class BTsort {
	
	public static void main(String[] args) {
		
      //自定义一个整型的数组;
		int[] array={19,12,3,22,6,7,21,11,43};
		
		//创建根节点;
		 		
	    Node root=new Node(array[0]);
		
		//依次将数组中的元素插入
		for(int i=1;i<array.length;i++){
			BinarySort(root,array[i]);
		}
		
		//查找指定的元素;
		if(BinarySerch(root,12)){
			System.out.println("二叉树中存在此元素");
		}else{
			System.out.println("二叉树中不存在该元素");
		}
		
		//遍历指定的二叉树并输出--采用中序遍历法;
		inOrder(root);
		
	}
	
	/**
	 * 将指定的元素插入二叉排序树中
	 * @param root
	 * @param key
	 */
	public static void BinarySort(Node root,int key){
		 
		//得到根节点中的元素;
		int value = root.getKey();
		//判断该插入左子树还是右子树;
		if(key<value){//插入柚子树
			if(root.getLeft()==null){
				Node node=new Node(key);
				root.setLeft(node);
			}else{
				BinarySort(root.getLeft(),key);
			}
			
		}else if(key>value){
			if(root.getRight()==null){
				Node node=new Node(key);
				root.setRight(node);
			}else{
				BinarySort(root.getRight(),key);
			}
		}
	}
	
	/**
	 * 二叉树搜索树;
	 * @param root
	 * @param key
	 */
	public static boolean BinarySerch(Node root,int key){
		if(root==null){
			return false;
		}else if(root.getKey()==key){
			return true;
		}else if(root.getKey()>key){
			 return BinarySerch(root.getLeft(),key);
		}else{
			 return BinarySerch(root.getRight(),key);
		}
	}
	
	/**
	 * 采用中序遍历法遍历一个二叉树 
	 * @param root
	 */
	public static void inOrder(Node root){
		if(root!=null){
			inOrder(root.getLeft());
			root.visitNode();
			inOrder(root.getRight());
		}
	}
	
}

 

分享到:
评论
2 楼 luliangy 2013-05-06  
dabing69221 写道
请问楼主 “Node ”是个什么东东啊

节点
1 楼 dabing69221 2013-05-05  
请问楼主 “Node ”是个什么东东啊

相关推荐

    java实现二叉排序树

    在Java中实现二叉排序树,我们通常会创建一个名为`BinarySearchTree`或`BSTNode`的类来表示树的结构。以下是一个简单的`BSTNode`类的实现: ```java public class BSTNode { int key; BSTNode left; BSTNode ...

    java 实现二叉排序树 堆

    在Java中实现二叉排序树,我们需要定义一个Node类来表示树的节点,包含键值、左子节点和右子节点。然后创建一个BST类,包含插入、查找和删除等基本操作。以下是一个简单的Java实现: ```java public class Node { ...

    数据结构 二叉排序树 java图形界面实现

    `BiSortTreeGui.java` 文件很可能是实现了二叉排序树并结合Java Swing库创建了一个图形用户界面(GUI)的应用程序。Swing是Java的一个图形库,用于构建桌面应用程序,提供了丰富的组件和事件处理机制。 首先,我们...

    java--实现二叉排序树

    以上就是关于Java实现二叉排序树的基本介绍,具体实现可以参考提供的`BinarySortTree.java`文件。在实际应用中,二叉排序树常用于构建索引结构、数据库系统等场景,其高效的查询能力使其成为数据存储和检索的重要...

    二叉排序树增删改查

    在iOS编程中,实现二叉排序树的增删改查操作是数据结构和算法的重要应用。CodeBlocks是一款跨平台的C++集成开发环境,虽然通常用于Windows,但它同样支持创建和调试Objective-C代码,这是iOS开发的主要语言。 ### ...

    数据结构之二叉排序树的生成

    在压缩包文件“二叉排序树的相关操作”中,可能包含了实现这些功能的源代码,如C、C++或Java等编程语言的实现。通过阅读和分析这些代码,我们可以更深入地理解二叉排序树的内部机制,掌握数据结构和算法在实际编程中...

    数据结构二叉排序树及其操作实验报告

    数据结构是计算机科学中的核心课程,它探讨了如何有效地存储和检索数据,以优化...这个实验报告提供了一个实用的框架,可以帮助其他学生理解和实现二叉排序树的各种操作,进一步巩固他们在数据结构课程中的学习成果。

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

    2. **顺序表存储结构**:对于较小的数据集,可以考虑使用数组来实现二叉排序树,这样可以直接通过索引访问元素,但插入和删除操作可能需要更多的移动操作。 3. **插入操作**:在二叉排序树中插入一个新节点,需要...

    构造二叉排序树

    在Java中实现二叉排序树,首先需要定义一个表示节点的类,通常包含三个属性:键值、左子节点和右子节点。下面是一个简单的`Node`类的示例: ```java public class Node { int key; Node left; Node right; ...

    二叉排序树问题

    在这个任务中,学生需要设计一个程序来实现二叉排序树的基本操作,同时提升自身的编程能力和问题解决能力。 **一、二叉排序树**是一种特殊的二叉树,它的每个节点都大于其左子树中的所有节点,小于其右子树中的所有...

    二叉排序树查找算法

    在C++中实现二叉排序树查找算法,通常涉及以下几个关键步骤: 1. **定义节点结构体**: 首先,我们需要定义一个表示二叉树节点的结构体,包含一个整数值和两个指向子节点的指针。 ```cpp struct TreeNode { int ...

    java课程设计二叉排序树

    在Java中,我们可以利用面向对象编程的概念来实现二叉排序树。以下是关于这个主题的详细知识点: 1. **二叉树基础**: - 二叉树是每个节点最多有两个子节点的树结构,分别称为左子节点和右子节点。 - 节点通常...

    写一算法,判断一棵二叉树是否是一棵二叉排序树。

    这段代码主要实现了递归判断二叉树是否为二叉排序树的功能。核心逻辑在于递归地检查每个节点的左子树中的最大值是否小于当前节点的值,并且右子树中的最小值是否大于当前节点的值。同时,还需要递归地确保左右子树也...

    平衡二叉排序树的算法实现

    平衡二叉排序树(Balanced Binary ...在“算法8.10平衡二叉排序树”这个压缩包文件中,可能包含了有关平衡二叉排序树实现的详细代码和示例,你可以通过阅读和理解这些代码来深入学习和掌握平衡二叉排序树的算法实现。

    二叉排序树操作。。。。。

    在Java中,二叉排序树的节点通常定义为一个类,包含键值、左子节点和右子节点的引用。插入和删除操作可以通过实例化这个类并调用相应的方法实现。例如: ```java class Node { int key; Node left, right; ...

    数据结构 综合性实验 实现二叉排序树的各种算法功能 有源码 有实验报告

    这个实验的目的是让学生理解和掌握二叉排序树的基本操作,并通过编写源码来实现这些功能。 首先,我们要理解二叉排序树的核心操作: 1. **插入操作**:在二叉排序树中插入一个新节点,需要根据新节点的值与当前...

    词频统计(未排序)

    自然语言理解 关于词频统计的代码 利用treemap来完成

    数据结构课设 赛事管理系统 二叉排序树 导航 排序 叫号

    3. **递归与迭代**:Java中实现二叉排序树的操作,可以使用递归或迭代方法,递归通常更直观,而迭代更适合大型树以避免栈溢出。 在实际项目中,除了二叉排序树,可能还需要结合其他数据结构如链表、堆、哈希表等,...

    二叉排序树问题 课程设计报告

    10. **参考文献**:报告中引用的参考资料可能来自教科书、论文或其他可靠来源,提供了设计和实现二叉排序树算法的理论基础和技术支持。 11. **源程序清单**:附录中的源程序清单是实现上述功能的代码,通常包括C、...

Global site tag (gtag.js) - Google Analytics