易截截图软件、单文件、免安装、纯绿色、仅160KB

二叉树的java构造算法

参考网上的一些资料,自己研读了一番,用java构造了一个二叉树类,并带有测试的main方法,如有不足请大家多多指教。
/**
* 二叉树构造算法
* 二叉树定义:是度为2的有序树,它的特点是每个节点至多有两棵子树
* 我们的算法就是根据二叉树的递归定义而来,下面是二叉树的递归定义:
* n(n>=0)个节点的有限集。它或者是空集(n=0),或者同时满足一下两个条件:
* (1) 有且仅有一个根节点
* (2) 其余的节点分成两棵互不相交的左子树和右子树
*
* 注:用此算法构造的二叉树的元素必须实现Comparable接口
*
* @author Liangliang Zhang
*
*/
public class BinaryTree<E extends Comparable<E>> {
//节点类:元素,左子树,右子树
private static class Node<E extends Comparable<E>>{
private E data;
private Node<E> left;
private Node<E> right;

//节点构造方法,可理解为叶子节点
public Node(E data){
this.data = data;
this.left = null;
this.right = null;
}
}

//根节点
private Node<E> root;

//空二叉树构造方法
public BinaryTree(){
root = null;
}

/**
* 根据节点及被元素递归查找元素是否属于此树
* @param node 节点
* @param searchData 被查找的元素
* @return 找到返回true
*/
public boolean lookup(Node<E> node, E searchData){
if(searchData == null){
return false;
}
if(node.data.equals(searchData)){
return true;
}
if(searchData.compareTo(node.data) == -1){
return lookup(node.left, searchData);
}else{
return lookup(node.right, searchData);
}

}

public boolean lookup(E searchData){
return lookup(root, searchData);
}

/**
* 根据所给节点,元素,将元素递归查找合适位置并将元素插入到二叉树中
* @param node 所给节点
* @param insertData 需插入元素
* @return 需插入元素的所在节点
*/
public Node<E> insert(Node<E> node, E insertData){
if(insertData == null ){
return node;
}
if(node == null){
node = new Node<E>(insertData);
}else{
if(insertData.compareTo(node.data) == -1){
node.


相关文档:

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......

java何去何从

如今发现java越来越难找工作了,一个大重庆既然招聘java的公司不到3家,并且要求还高呢。突然感觉向我们这样从学校培训出来的,学历也不是好高的,真的活不下去了。这世道,明明中国这么缺软件开发的为什么,我们还是没得机会被公司录用呢。凄凉。 ......

Eclipse Java注释模板设置详解

Eclipse Java注释模板设置详解
src url:http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx
设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:
文件(Files)注释标签:
/**  
......

Java重写与重载

 
有时候,类的同一种功能有多种实现方式,到底采用那种实现方式,取决于调用者
给定的参数。例如杂技师能训练动物,对于不同的动物有不同的训练方式。
       
public void train
(Dog dog){
       
//
训练小狗站立,排队,做算 ......

Java String.Format() 方法及参数说明

JDK1.5中,String类新增了一个很有用的静态方法String.format():
format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。
format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。
举几个这个方法实用的例子(注释是输出结果): ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号