易截截图软件、单文件、免安装、纯绿色、仅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高精。果然很简单。但是在使用前一定要注意审题,有时候根本不需要用高精计算。一定要有看清条件。   
BigInteger
                   &nb ......

java action 路径问题

StringBuilder path = new StringBuilder(request.getScheme());
  path.append("://").append(request.getServerName());
  path.append(":").append(request.getServerPort()).append(request.getContextPath());
  System.out.println("***********path:" + path);
  Syste ......

java正则表达式去掉匹配空格空行

java 的去掉空格空行的例子:
 String so = "haolong,    hei eip,      "
            +"ting,         " +
         & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号