数据结构 JAVA二叉树的简单实现
程序员文章站
2022-07-10 10:20:10
...
这是我第一次来上面些博客,唉 文档倒是积累了不少,但是全部都是放在本地的,无法发到网络上大家一起分享和找问题,正好这段时间重新看了看数据结构以及java 虚拟机等东西,因此写了几段代码,大家来看看有没有价值:
数据结构 二叉树:二叉树有多重使用的场景,但是最适合的场景是存储数字型的数据,然后有对数据排序的需求。排序有多重,但是使用二叉树的好处是对数据的写入已经是排序了的,然后获取的时候,只需要按照二叉树的数据机构的纹路获取就轻而易举的实现了,下面是代码,后面我可能会来修改的。
数据结构 二叉树:二叉树有多重使用的场景,但是最适合的场景是存储数字型的数据,然后有对数据排序的需求。排序有多重,但是使用二叉树的好处是对数据的写入已经是排序了的,然后获取的时候,只需要按照二叉树的数据机构的纹路获取就轻而易举的实现了,下面是代码,后面我可能会来修改的。
import java.util.Random; /**** * * * 类名称: Tree.java * 类描述: * 创建人: * 创建时间: 2016-12-15上午11:16:00 * 修改人: liuxing * 修改时间: 2016-12-15上午11:16:00 * 修改备注: Tree:二叉树,它具体二叉树所有的特性。同时红黑树更是一颗自平衡的排序二叉树,二叉树的特点就是: * 即树中的任何节点的值大于它的左子节点,且小于它的右子节点。按照这个基本性质使得树的检索效率大大提高 * 我们知道在生成二叉树的过程是非常容易失衡的,最坏的情况就是一边倒(只有右/左子树),这样势必会导致二叉树的检索效率大大降低(O(n)),所以为了维持二叉树的平衡,大牛们提出了各种实现的算法 * * 以下是二叉树最简单的实现 * @version */ public class Tree { private static TreeNode root = new TreeNode() ; public static void put( int info ){ compare(root, info) ; } /*** * 简单二叉树的数据结构 * @param node * @param info * @return */ private static TreeNode compare( TreeNode node,int info ){ if( node == null || node.getBase() == null ){ if( node == null ){ node = new TreeNode() ; } node.setBase( info ) ; }else if( node.getBase() > info ){ //将小于的置于左边 TreeNode left = compare( node.getLeft(), info) ; node.setLeft( left ) ; }else if( node.getBase() < info || node.getBase().equals( info ) ){ //将大于等于的置于右边 TreeNode right = compare( node.getRight(), info) ; node.setRight(right) ; } return node ; } /**** * 简单二叉树的数据排序 * @param node */ private static void sort( TreeNode node ){ if( node == null ){ return ; }else if( node.getBase() != null ){ if( node.getLeft() != null ){ sort( node.getLeft() ) ; } System.out.println( node.getBase() ); if( node.getRight() != null ){ sort( node.getRight() ) ; } } } public static void main(String[] args) { int i = 0 ; while(i < 4){ int mark = new Random().nextInt( 100 ) ; Tree.put( mark ) ; i++ ; } sort( root ) ; } } class TreeNode{ private Integer base ; protected TreeNode right ; protected TreeNode left ; public TreeNode getRight() { return right; } public void setRight(TreeNode right) { this.right = right; } public TreeNode getLeft() { return left; } public void setLeft(TreeNode left) { this.left = left; } public Integer getBase() { return base; } public void setBase(Integer base) { this.base = base; } }