首先定义节点类
public class TreeNode { Object obj; TreeNode parent; TreeNode lchild; TreeNode rchild; public TreeNode(int obj) { this.obj = obj; } }
然后创建一个树类
public class Tree { /** * 先序遍历二叉树 * @param root */ public void Fprint(TreeNode root){ if(root!=null){ System.out.println(root.obj); Fprint(root.lchild); Fprint(root.rchild); } } /** * 中序遍历二叉树 * @param root */ public void Mprint(TreeNode root){ if(root!=null){ Mprint(root.lchild); System.out.println(root.obj); Mprint(root.rchild); } } /** * 根据一个int数组建立二叉排序树 * @param a 数组 * @return */ public TreeNode Build(int[] a){ if(a.length==0){ return null; } TreeNode root = new TreeNode(a[0]); for(int i=1;i<a.length;i++){ TreeNode newnode = new TreeNode(a[i]); sort(root,newnode); } return root; } /** * 在二叉排序树中添加一个节点 * @param root 二叉树的根节点 * @param newnode 新加入的加点 * @return */ public void sort(TreeNode root,TreeNode newnode){ TreeNode node = root; if((Integer)newnode.obj<=(Integer)node.obj){ if(node.lchild==null){ newnode.parent = node; node.lchild = newnode; }else{ sort(node.lchild,newnode); } }else{ if(node.rchild==null){ newnode.parent = node; node.rchild = newnode; }else{ sort(node.rchild,newnode); } } } } 创建二叉排序树的时候随便传入一个int型数组a[] 然后通过自顶向下的方式一个一个的将a[0]---a[n]个元素创建的节点类一个一个的拼接到树上 此后只需要再创建一个主函数类来调用便行了
public class Test { public static void main(String[] args) { int a[] = {100,35,3,44,212,453}; Tree t = new Tree(); TreeNode root = t.Build(a); t.Mprint(root); } }
这样便可通过创建二叉排序树并且中序遍历该二叉树的方式,来将一组混乱的数据整理成一组从小到大的数据了。
相关推荐
说明: 可实现:构造树,插入,查找,删除. 通过模式的选择,可以插入值相等的点.但是不建议使用.
数据结构 二叉排序树 二叉搜索树 java swing图形界面实现
java使用jtree动态实现二叉树,包含二叉树的插入删除很查找
分别采用二叉链表和顺序表作存储结构,实现对二叉排序树与平衡二叉树的操作。 重庆理工大学,软件工程系,课程设计。
java语言控制台实现的二叉排序树,含详细设计文档
使用java语言编程实现了平衡二叉树、二叉树、二叉搜索树、红黑树四种树相关的数据结构,还实现了多种排序算法。并且是在J2EE下实现的。
排序二叉树 AVL树 哈夫曼树增删改查Java实现
java基础笔记数据结构-排序二叉树,详细描述了排序二叉树的原理及其实现方式,基础数据结构。
java编写的二叉树的各种操作,其中包括二叉排序树和平衡二叉树的各项操作,用于学习数据结构,可以运行
写一算法,判断一棵二叉树是否是一棵二叉排序树。
排序二叉树的基础代码,包含递归非递归二叉树构建、递归非递归遍历,获取最小最大值。
用java语言来构造二叉排序树,理解java数据结构。
java排序 七.计数排序及其实现 八.基数排序及其实现 九. 桶排序及其实现 十. 堆排序及其实现 十一.二叉树排序及有序集合 十二.利用集合的4种排序排序方式
数据结构课设,用c语言编写的单链表, 表达式求值, 二叉树 ,二叉排序树 ,Huffman编码,五个做成菜单,只有一个main函数
首先 声明 有几个可能没有做完(就一两个) 大家下了别骂人啊 数据结构—课程设计 包括 一元稀疏多项式计算器 迷宫问题 成绩分析问题 ...6 二叉排序树与平衡二叉树的实现 9 内部排序算法的性能分析
主要介绍了Java的二叉树排序以及遍历文件展示文本格式的文件树,是对二叉树结构学习的两个很好的实践,需要的朋友可以参考下
本人用JAVA写的二叉排序树,有二叉树插入节点、删除节点、修改节点等操作,其中还写了一个字符串比较(字母模式比较,数值模式比较)另外不附有源码
如果您想在Matlab中实现查找二叉排序树,可以按照以下步骤进行: 1/定义二叉树节点类型 2/实现二叉排序树的插入操作 3/实现二叉排序树的查找操作
采用java实现,实现了常用的数据结构,包括顺序表、链表、队列、栈(数组实现和链表实现)、二叉树(二叉排序树)、图(深度优先、广度优先)
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...