先定义树的节点类
package Tree; /** * 树节点 * @author Huangbin * d2014年7月18日 */ public class Tree { Object obj;//内容 Tree parent;//父节点 Tree lchild;//左孩子节点 Tree rchild;//右孩子节点 public Tree(Object obj) { this.obj = obj; } public String toString() { return "" + obj; } }
生成30个随机数,取第一个作为根节点,一次放入剩余29个数字。小的放左边大的放右边。使用中序遍历后就是排好序的了。
package Tree; import java.util.Random; /** * 二叉树 * * @author Huangbin * @data 2014年7月18日 */ public class Main { public static void main(String[] args) { Main mu = new Main(); int[] a = mu.creatArray(); Tree root = new Tree(a[0]);// 取第一个元素建立树 for (int i = 1; i < a.length; i++) { mu.put(a[i], null, root);//将第一个节点放进去,当作孩子节点,在put方法中会当作父节点。 } mu.preOrderDisplay(root); System.out.println(); mu.inOrderDisplay(root);// 中序遍历变成排序树 System.out.println(); mu.postOrderDisplay(root); } /** * 创建30个数的数组 * * @return */ public int[] creatArray() { int arr[] = new int[30]; Random rd = new Random(); for (int i = 0; i < 30; i++) { arr[i] = rd.nextInt(100); } return arr; } /** * 将元素放入树temp中生成二叉排序树 * * @param key * 元素值 * @param root * 临时保存父节点 * @param temp * 将要放的位置(开始时候传入根节点) */ public void put(int key, Tree root, Tree temp) { if (temp == null) {// 找到了空位 temp = new Tree(key);// 不存在就创建节点并结束方法 if (key < (int) root.obj) {// 注意这个判断条件,在这个里面进行节点之间关系的链接 root.lchild = temp; } else { root.rchild = temp; } temp.parent = root; } else { if (key < (int) temp.obj) {// 小于根节点放到左边去递归 put(key, temp, temp.lchild); } else if (key > (int) temp.obj) { put(key, temp, temp.rchild);// 大于等于放右边去递归 } } } /** * 中序遍历 * * @param root */ public void inOrderDisplay(Tree root) { Tree tree = root; if (tree != null) { inOrderDisplay(tree.lchild); System.out.print(tree + " "); inOrderDisplay(tree.rchild); } } /** * 先序遍历树root * * @param root */ public void preOrderDisplay(Tree root) { Tree tree = root; if (tree != null) { System.out.print(tree + " "); preOrderDisplay(tree.lchild); preOrderDisplay(tree.rchild); } } /** * 后续遍历树root * * @param root */ public void postOrderDisplay(Tree root) { Tree tree = root; if (tree != null) { postOrderDisplay(tree.lchild); postOrderDisplay(tree.rchild); System.out.print(tree + " "); } } } 运行结果: 88 49 23 15 38 27 26 28 32 48 42 54 50 67 65 62 57 58 66 80 75 76 82 86 85 15 23 26 27 28 32 38 42 48 49 50 54 57 58 62 65 66 67 75 76 80 82 85 86 88 15 26 32 28 27 42 48 38 23 50 58 57 62 66 65 76 75 85 86 82 80 67 54 49 88
相关推荐
在“数据结构之二叉排序树的生成”这个程序中,我们可以深入理解二叉排序树的构建过程和相关操作。首先,我们需要初始化一个空的二叉树。这通常通过创建一个空的根节点来实现,根节点没有左右子节点。初始化操作是...
二叉排序树(Binary Sort Tree,BST),也称为二叉搜索树,是一种特殊的二叉树数据结构,它的每个节点都包含一个键(key)、一个关联的值、一个指向左子节点的指针和一个指向右子节点的指针。在二叉排序树中,对于...
总的来说,`BiSortTreeGui.java`文件通过Java Swing库实现了二叉排序树的数据结构,并结合GUI,使得用户可以直观地进行数据的插入、查找和删除操作,这在教学或实践数据结构时非常有帮助。这个项目展示了如何将抽象...
数据结构是计算机科学中的核心概念,它涉及到如何高效地存储...通过这次课程设计,你不仅将深入理解二叉平衡排序树的原理,还将锻炼到实际问题的解决能力和编程技巧,为未来在数据结构与算法领域的发展打下坚实的基础。
数据结构是计算机科学中的核心课程,它探讨了如何有效地存储和检索数据,以优化...这个实验报告提供了一个实用的框架,可以帮助其他学生理解和实现二叉排序树的各种操作,进一步巩固他们在数据结构课程中的学习成果。
二叉排序树(Binary Sort Tree,BST),也称为二叉搜索树,是一种特殊的二叉树数据结构,它具有以下特性: 1. 每个节点包含一个键(key)、一个关联的值、一个指向左子节点的引用和一个指向右子节点的引用。 2. ...
二叉排序树(Binary Search Tree,BST),也称为二叉查找树或有序二叉树,是一种自平衡的二叉树数据结构。在二叉排序树中,每个节点都包含一个键值,对于任意节点,其左子树中的所有节点的键值小于该节点的键值,而...
二叉排序树(Binary Search Tree,BST)是一种特殊的二叉树数据结构,它具有以下特性: 1. 每个节点包含一个键(key)、一个关联的值、一个指向左子节点的引用和一个指向右子节点的引用。 2. 节点的键大于其左子树...
**二叉排序树问题**是数据结构课程设计中常见的一个课题,旨在让学生深入理解并实践二叉树、查找表的逻辑结构和存储结构。在这个任务中,学生需要设计一个程序来实现二叉排序树的基本操作,同时提升自身的编程能力和...
二叉排序树(Binary Sort Tree...在Java课程设计中,理解并实现二叉排序树不仅有助于掌握数据结构与算法,还能提高解决问题的能力。通过实际操作,学生可以深入理解二叉树的性质,并学会如何在实际场景中应用这些知识。
在这个“数据结构课设 赛事管理系统”中,我们重点研究了二叉排序树(Binary Sort Tree,BST),这是一种重要的数据结构,特别适用于排序和导航任务。以下是关于二叉排序树及其在赛事管理系统中应用的详细知识点: ...
二叉排序树(Binary Sort Tree,BST)是一种特殊的二叉树数据结构,它的每个节点都包含一个键(key)、一个值、一个指向左子树的指针和一个指向右子树的指针。在二叉排序树中,任何节点的左子树只包含键小于当前节点...
二叉排序树(Binary Sort Tree,BST),也称为二叉查找树或二叉搜索树,是一种特殊的二叉树数据结构,它...通过熟练掌握二叉排序树的原理和实现,你可以更好地理解和运用Java中的数据结构,从而提高程序的性能和效率。
二叉排序树(Binary Search Tree,BST),也称为二叉查找树或有序二叉树,是一种自平衡的二叉树数据结构,它在处理搜索、插入和删除操作时具有较高的效率。二叉排序树的主要特点是:对于任意节点,其左子树中的所有...
总之,“java二叉排序”结合了数据结构(二叉搜索树)和数据交换格式(XML),提供了在Java环境中对整数序列进行排序并将其持久化到XML文档的方法。这样的练习可以帮助开发者深化对两者概念的理解,并提高解决问题的...
总结来说,这个课程设计不仅让学生掌握了二叉排序树的基本概念,还让他们了解到如何在实际问题中应用数据结构,提高了他们的编程和问题解决能力。通过对"员工信息管理系统"的实现,学生可以深化对数据结构的理解,...
在本实验中,我们将深入探讨数据结构中的一个重要概念——二叉排序树(Binary Sort Tree,BST),这是一种特殊的二叉树,具有高效的查找、插入和删除操作。二叉排序树的特性是左子树上的所有节点的值都小于根节点,...
二叉排序树,又称二叉查找树或二叉搜索树,是一种特殊的二叉树数据结构,它具有以下特性:每个节点的左子树只包含比该节点小的元素,而右子树则只包含比该节点大的元素。这种结构使得在二叉排序树中进行查找、插入和...
二叉排序树(Binary Sort Tree,BST),也称为二叉查找树或有序二叉树,是一种自平衡的二叉树数据结构。它在处理搜索、插入和删除操作时具有较高的效率,尤其对于有序数据。在二叉排序树中,每个节点的左子树只包含...
二叉排序树是一种非常重要的数据结构,在实际应用中有着广泛的应用场景,比如用于实现高效的查找、插入和删除操作。 #### 性质概述 - **左小右大**:对于任意节点而言,其左子树的所有节点的值都不大于该节点的值,...