易截截图软件、单文件、免安装、纯绿色、仅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.


相关文档:

传智播客java培训 java基础之标签库

今天太晚了 ,但是老师布置的作业还没收功。。。。。
因为自己敲得实在太慢了,有时候遇到工具发生一点错误,也要迷糊半个消失。。。。为什么是全英文的??
还好明天休息,可以好好做题目!
以下是标签基础方面的总结,其实我觉得要是背下来更好 ,哈哈
  -->>>简单标签
实现SimpleTag接口的标签通常称 ......

java何去何从

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

冒泡排序(妙) JAVA版

public void sort(int[] array) {
  for(int i=0; i<array.length; i++) {
    boolean flag = true;
    for(int j=0; j<array.length-i-1; j++) {
      if(array[j]>array[j+1]) {
        int tmp = ar ......

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 读取属性文件问题

InputStream stream;
Properties prop = new Properties();// 属性集合对象
stream = getClass().getResourceAsStream("NcJdbc.properties");
prop.load(stream);
stream.close();// 关闭流
String databaseName=prop.getProperty("jdbc.databaseName");
InputStream stream;
Properties prop = new Properties(); ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号