废话不说了,直接上代码,二叉树排序的算法,不难,仔细看看,应该可以很容易的看懂,欢迎批评指正
class BinaryTree{
class Node{ // 声明一个节点类
private Comparable data ; // 保存具体的内容
private Node left ; // 保存左子树
private Node right ; // 保存右子树
public Node(Comparable data){
this.data = data ;
}
public void addNode(Node newNode){
// 确定是放在左子树还是右子树
if(newNode.data.compareTo(this.data)<0){ // 内容小,放在左子树
if(this.left==null){
this.left = newNode ; // 直接将新的节点设置成左子树
}else{
this.left.addNode(newNode) ; // 继续向下判断
}
}
if(newNode.data.compareTo(this.data)>=0){ // 放在右子树
if(this.right==null){
this.right = newNode ; // 没有右子树则将此节点设置成右子树
}else{
this.right.addNode(newNode) ; // 继续向下判断
}
}
}
public void printNode(){ // 输出的时候采用中序遍历
if(this.left!=null){
this.left.printNode() ; // 输出左子树
}
System.out.print(this.data + "\t") ;
if(this.right!=null){
this.right.printNode() ;
}
}
};
private Node root ; // 根元素
public void add(Comparable data){ // 加入元素
Node newNode = new Node(data) ; // 定义新的节点
if(root==null){ // 没有根节点
root = newNode ; // 第一个元素作为根节点
}else{
root.addNode(newNode) ; // 确定是放在左子树还是放在右子树
}
}
public void print(){
this.root.printNode() ; // 通过根节点输出
}
};
public class ComparableDemo03{
public static void main(String args[]){
BinaryTree bt = new BinaryTree() ;
bt.add(8) ;
bt.add(3) ;
bt.add(3) ;
bt.add(10) ;
bt.add(9) ;
bt.add(1) ;
bt.add(5) ;
bt.add(5) ;
System.out.println("排序之后的结果:") ;
bt.print() ;
}
};
分享到:
相关推荐
二叉树排序算法是一种基于二叉树数据结构的排序方法,它主要利用了二叉树的特性来实现数据的有序排列。在这个主题中,我们将会深入探讨二叉树的构造、性质以及如何利用它们进行排序。JavaScript作为一种常用的编程...
- 空间效率:相比于其他动态排序算法,如归并排序、堆排序等,二叉树排序通常需要更少的额外空间。 然而,也有其不足之处: - 平均性能:当输入数据已经部分排序或者随机分布时,二叉搜索树可能会退化成链表,此时...
二叉树排序是一种基于二叉树数据结构的排序方法,其基本原理是通过构建一个二叉搜索树(Binary Search Tree, BST),然后按照中序遍历(In-Order Traversal)的方式输出节点数据,得到的结果就是一个有序序列。...
本文将深入探讨如何利用VC++(Visual C++)编写的二叉树排序算法,并将其封装为DLL(动态链接库),供VB(Visual Basic)程序调用,实现高效的数据排序。在描述中提到的环境下,即CPU为T6670 2.20GHz,内存为2GB,...
基于二叉树的位排序算法是计算机科学中一种高效的排序方法,尤其在处理复杂数据结构和大数据量排序时显示出其优越性。该算法利用了二叉树的性质,通过位操作来实现数据的排序,位排序通常指的是根据数据中特定位的值...
### 二叉树排序原理与实现 #### 一、二叉树排序树基本概念 二叉树排序是一种基于二叉树的数据结构实现的排序方法。它利用了二叉树的特性来达到排序的目的。在本篇文章中,我们将详细介绍二叉树排序的核心思想,即...
4. **报告编写**:在课程设计报告中,你需要清晰地阐述二叉排序树的原理、实现过程、优缺点以及与其他排序算法的比较,例如快速排序、归并排序等。 5. **演讲PPT制作**:制作演示文稿时,要确保包含关键概念、示例...
有C源码和VB调用DLL的源码 CPU:T6670 2.20GHZ 内存:2G 系统:WIN7 用VB调用DEV c++编译器编译的C编写的二叉树排序DLL,10万个数排序只需要0.12秒,100万个数排序只需要2.49秒
二叉树排序算法是一种高效的排序算法,它的工作原理是通过将数组转换成二叉树,然后将二叉树的节点排序,以达到排序的目的。二叉树排序算法的时间复杂度为O(n log n),因此它适合大规模的数据排序。 8.基数排序算法...
文件"21.cpp"很可能是项目的主要源代码文件,其中包含了二叉树排序算法的具体实现。在C++中,我们通常使用结构体或类来表示二叉树节点,包含节点值和指向左右子节点的指针。插入操作会根据新元素与当前节点的比较...
堆排序是一种高效的排序算法,基于完全二叉树的特性。在计算机科学中,二叉树是一种数据结构,每个节点最多有两个子节点。堆排序利用了堆这种数据结构所具有的特性,可以被看作是一个近似完全二叉树的结构,并且满足...
此外,对于已经部分有序的数据,二叉树排序可能会比其他排序算法更快,因为插入操作的代价相对较低。 二叉树算法在实际应用中广泛,例如数据库索引、文件系统、搜索引擎等领域。通过学习和理解这个C#实现,开发者...
二叉树排序是一种基于二叉树数据结构的排序算法,其核心思想是将待排序的数据构建为一棵特殊的二叉树——二叉搜索树(Binary Search Tree, BST),然后通过遍历这棵树来达到排序的目的。在二叉搜索树中,每个节点的...
python实现的二叉树排序
本文将详细介绍几种常见的排序算法及其Java实现,同时也会涉及二叉树的基本概念和实现。 首先,让我们从最简单的排序算法开始。冒泡排序是一种基础的交换排序方法,它通过重复遍历待排序的数组,依次比较相邻元素并...
本主题关注如何将一个整型(int)数组的内容构建到一棵二叉树上,并实现二叉树排序。二叉树排序是一种利用二叉搜索树特性进行排序的方法,它能有效地在O(n log n)的时间复杂度内完成排序。 首先,我们要了解二叉树的...
在本案例中,我们关注的是“c二叉树排序”,这是一个使用C语言实现的算法,它通过构建二叉树来对输入数据进行排序,并最终按照某种顺序将排序结果输出到文件中。山东大学的C语言考试中可能包含此类问题,要求学生...
从给定的实验报告中,我们可以提炼出关于二叉树先序遍历创建与中序遍历输出排序的几个关键知识点: ### 1. 二叉树先序遍历创建 #### 定义与概念 - **二叉树**:是一种树形数据结构,其中每个节点最多有两个子节点...
### 数据结构C排序和二叉树 #### 排序算法:冒泡排序 ...理解并掌握数据结构如排序算法和二叉树,对于编程和算法设计至关重要,它们不仅能够帮助我们更高效地解决问题,也是深入学习更高级数据结构和算法的基础。
二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言...