简介
二叉树的一个重要应用是它们在查找中的使用。
二叉查找树的性质:对于树中的每个节点X,它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。这意味着该树所有的元素可以用某种一致的方式排序。
二叉查找树的平均深度是O(logN)。二叉查找树要求所有的项都能够排序。树中的两项总可以使用Comparable接口中的compareTo方法比较。
BinaryNode类像链表类中的节点类一样,是一个嵌套类:
private static class BinaryNode<AnyTpye>{
BinaryNode(AnyType){
this(theElement,null,null);
}
BinaryNode(AnyType theElement,BinaryNode<AnyType> lt,BinaryNode<AnyType> rt){
element = theElement;left = t;right = rt;
}
AnyType element;//节点上的数据
BinaryNode<AnyType> left;//左子节点
BinaryNode<AnyType> right;//右子节点
}
二叉查找树架构如下,代码BinarySearchTree中唯一的数据域是对根节点的引用,这个引用对于空树来说是null。