二叉树的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.
相关文档:
2008 年 6 月 24 日
原文地址: http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0806wangys/
本文介绍 IBM FileNet P8 4.0 Platform 提供的 Content Java API。首先对 FileNet P8 Content Engine 和 API 进行概要介绍, 并说明了一些基本概念,随后详细介绍了 FileNet Content Engine提供的基于 EJB ......
1。要用到的包有:
2.json , java之间基本类型的转换,
StringBuffer sb = new StringBuffer("{'name':'oop'}");
JSONObject jo = JSONObject.fromObject(sb.toString());
Map<String,Object> map = new HashMap<String,Object>();
&nbs ......
XJad2.2(Java源代码反编译工具)
立即下载
XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2。
XJad可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件。
XJad带有多页面文本编辑器,反编译完成后可以直接编辑查看,编辑器支持java语法的高亮显示功能。
......
java(Web)中相对路径,绝对路径问题总结
前言:
前一段时间,由于在处理Web应用下的文件创建与移动等,因此涉及到很多关于java
中相对路径,绝对路径等问题。同时,对于Web应用中的相对路径,绝对路径,以及Java.io.File
类学习了一下。也找了一些资料。希望大家遇到类似的问题,可以更有效的解决。
========= ......
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(); ......