二叉树的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.
相关文档:
今天太晚了 ,但是老师布置的作业还没收功。。。。。
因为自己敲得实在太慢了,有时候遇到工具发生一点错误,也要迷糊半个消失。。。。为什么是全英文的??
还好明天休息,可以好好做题目!
以下是标签基础方面的总结,其实我觉得要是背下来更好 ,哈哈
-->>>简单标签
实现SimpleTag接口的标签通常称 ......
Eclipse Java注释模板设置详解
src url:http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx
设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:
文件(Files)注释标签:
/**
......
JXL.JAR 操作Excel文件开源包
这里简单讲些项目中用到的一些方法!(项目的环境是Struts2 hibernate3 resin3 )
// Excel文件存放路径
String path = ServletActionContext.getServletContext().getRealPath("")+"userfiles\\train_excel\\text.xls";
// 生成Excel文件
WritableWorkbook wwb = Workbook.creat ......
替换字节数组流和管道流
文档选项
<tr
valign="top"><td width="8"><img alt="" height="1" width="8"
src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16"
he ......
java(Web)中相对路径,绝对路径问题总结
前言:
前一段时间,由于在处理Web应用下的文件创建与移动等,因此涉及到很多关于java
中相对路径,绝对路径等问题。同时,对于Web应用中的相对路径,绝对路径,以及Java.io.File
类学习了一下。也找了一些资料。希望大家遇到类似的问题,可以更有效的解决。
========= ......