一、二叉树
二叉树的每个节点都不能有多于两个的儿子。
每个节点有一个左子节点(left children)和右子节点(right children)。
二、二叉查找树
使二叉树成为 二叉查找树的性质是,每个节点都不比它左子树的任意元素小,而且不比它的右子树的任意元素大。
二叉查找树可以方便的实现搜索算法。在搜索元素x的时候,我们可以将x和根节点比较:
如果x等于根节点,那么找到x,停止搜索 (终止条件)
如果x小于根节点,那么搜索左子树
如果x大于根节点,那么搜索右子树
package Chapter4;
public class BinaryNode {
Object ele;
BinaryNode lt;
BinaryNode rt;
public BinaryNode(Object ele) {
this(ele, null, null);
}
public BinaryNode(Object ele,BinaryNode lt,BinaryNode rt) {
this.ele = ele;
this.lt = lt;
this.rt = rt;
}
}
package Chapter4;
public class BinarySearchTree {
public BinaryNode findMin(BinaryNode t){
if(t==null)
return null;
else if(t.lt == null)
return t;
return findMin(t.lt);
}
public BinaryNode findMax(BinaryNode t){
if(t==null)
return null;
else if(t.rt == null)
return t;
return findMax(t.rt);
}
}