在JAVA中实现的二叉树结构

最近研究了一下二叉树结构,参考了一些资料,总结了一下。

package com.test;/** *//** *  * 在JAVA中实现二叉树结构 *  * 讲解: * 二个方法函数,一个寻找关键字--searchkey 另一个是插入一个结点:insertTree  *  * 另外这是一个完全的先序遍历二叉树的语法。先根结点,再左结点,如无再右结点,如些加归至 *  * 搜索完毕。 *  */public class BinaryTreeTest ...{ private BinaryTree root = null; public BinaryTreeTest() ...{  init(); } /** *//**  * 初始化给定数据的二叉树结构  *  */ private void init() ...{  int data[] = ...{ 12, 11, 34, 45, 67, 38, 56, 43, 22, 8 };  root = new BinaryTree(data[0]);  System.out.println("二叉树的中的数据结构:");  System.out.println("------------------------------------");  System.out.println(data[0] + ":root");  for (int i = 1; i < data.length; i++) ...{   System.out.print(data[i] + ":");   root.insertTree(root, data[i]);  }  System.out.println("------------------------------------"); } public void serach(int key) ...{  if (searchkey(root, key)) ...{   System.out.println("找到了:" + key);  } else ...{   System.out.println("没有找到:" + key);  } } private boolean searchkey(BinaryTree root, int key) ...{  if (root == null) ...{   return false;  } else if (root.data == key) ...{   return true;  } else if (key >= root.data) ...{   return searchkey(root.rightpoiter, key);  }  return searchkey(root.leftpoiter, key); } class BinaryTree ...{  int data;  BinaryTree leftpoiter;  BinaryTree rightpoiter;  BinaryTree(int data) ...{   this.data = data;   leftpoiter = null;   rightpoiter = null;  }  private void insertTree(BinaryTree root, int data) ...{   if (data >= root.data) ...{    if (root.rightpoiter == null) ...{     System.out.println(" -> new rightpoiter");     root.rightpoiter = new BinaryTree(data);    } else ...{     System.out.print(" -> rightpoiter");     insertTree(root.rightpoiter, data);    }   } else ...{    if (root.leftpoiter == null) ...{     System.out.println(" -> new leftpoiter");     root.leftpoiter = new BinaryTree(data);    } else ...{     System.out.print(" -> leftpoiter");     insertTree(root.leftpoiter, data);    }   }  } } public static void main(String args[]) ...{  BinaryTreeTest b = new BinaryTreeTest();  int key = 8; //key:任意数值  b.serach(key); //到二叉树中查找 }}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索key
, 结点
, root
, data
, system
, println
, java表达式二叉树
java二叉树
java 二叉树 实现、java实现二叉树遍历、java二叉树的实现、java实现平衡二叉树、java实现二叉树的遍历,以便于您获取更多的相关知识。

时间: 2024-07-31 07:55:49

在JAVA中实现的二叉树结构的相关文章

JAVA中如何实现树形结构

问题描述 我现在做社区管理系统,我想要用Java语言做出一个树形结构,有哪位高手能指点我一下. 解决方案 解决方案二:你去网上下个dtree.js你按他的要球把参数传进去就可以了解决方案三:或者用梅花雪的js树.

解析Java中PriorityQueue优先级队列结构的源码及用法_java

一.PriorityQueue的数据结构 JDK7中PriorityQueue(优先级队列)的数据结构是二叉堆.准确的说是一个最小堆. 二叉堆是一个特殊的堆, 它近似完全二叉树.二叉堆满足特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆. 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆. 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆. 下图是一个最大堆 priorityQueue队头就是给定顺序的最小元素. prio

java json 数据转换-JAVA中如何将数据组装为json树状结构的数据

问题描述 JAVA中如何将数据组装为json树状结构的数据 我从数据库中查出的数据保存到一个集合List中,集合中是存的区域类Area.区域类的字段和数据库中结果的字段一样.图1中是我的数据库查询结果,想转行为json格式的树状结构.例如省-市-县这样的结构.就是图2的效果 图1: 图2: 弄了一天了还没出现,我太菜了.请大家帮帮忙 解决方案 要么你就自己纯拼字符串,要么就直接用fastjson这类json工具类直接转.只要类结构和json结构能对应,可以直接转就可以了. 解决方案二: 你定义一

大侠请指教,Java中如何实现类似于C语言中的宏结构

问题描述 Java的大侠们,我是Java菜鸟,本来是用C语言开发的,最终要给Java程序做一个包装,用ContextCheckBegin和ContextCheckEnd对任意一段代码进行标注,从而检查该段代码执行上下文是否满足要求,它们的C语言宏代码定义如下所示#defineContextCheckBegin(...)if(macroName(...)){doSomeThing()..#defineContextCheckEnd(...)doEndThing();}希望将上述定义改成Java代码

java中怎么表示类似c中的结构数组?

问题描述 c中的struct结构,可以用java中的类来表示,那么c中的结构数组呢? 解决方案 解决方案二:该回复于2011-04-13 15:49:46被版主删除解决方案三:类也有数组的.解决方案四:类也可以有数组啊!解决方案五:有类的数组??怎么表示哟解决方案六:你可以吧C的结构体看成是JAVA中的javabean就好理解了解决方案七:哦,就是对象的数组就可以了吧

深入解读Java代码组织中的package包结构_java

如果我们在Class对象上调用getPackage方法,就可以得到描述该类所在包的Package对象(Package类是在java.lang中定义的).我们也可以用包名通过调用静态方法getPackage或者调用静态方法getPackages(该方法返回由系统中所有已知包构成的数组)来获得Package对象.getName方法可以返回包的全名. Package对象的使用与其他反射类型完全不同,即我们不能在运行时创建或操纵包.我们可以使用Package对象来获取有关包的信息,诸如包的用途.谁创建了

java中treemap和treeset实现(红黑树)

TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializab

Java中的读/写锁

原文链接 作者:Jakob Jenkov 译者:微凉 校对:丁一 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些.假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁.在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源.但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写(译者注:也就是说:读-读能共存,读-写不能共存,写-写不能共存).这就需要一个读/写锁来解决这个问题

Java中关于XML的API惊鸿一瞥

xml 简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了.水平有限,多多包涵. 1.JAXP(Java API for XML Parsing) 2.JAXB(Java API for XML Binding) 3.JAXM(Java API for XML Messaging) 4.JAX-RPC(Java API for XML-RPC) 1.JAXP定义了在Java中使用DOM, SAX, XSLT的通用的接口.这样在你的程序中你只要使用这些通用的接口,当你需要