二叉排序树
二叉排序树(Binary sort tree
,BST
),又叫二叉查找树、二叉搜索树,或者是一棵空树;或者是具有下列性质的二叉树:
(1)若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;
(2)若它的右子树不为空,则右子树上所有节点的值均大于它的根节点的值;
(3)它的左、右子树也分别为二叉排序树。
(注:二叉排序树中没有值相同的节点)
二叉排序树属于一种动态查找表,
关于二叉排序树节点的代码实现:
public class TreeNode {
private int data;//数据
private TreeNode left;//左子树节点
private TreeNode right;//右子树节点
public TreeNode(int data, TreeNode left, TreeNode right) {
super();
this.data = data;
this.left = left;
this.right = right;
}
public TreeNode(int data) {
super();
this.data = data;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public TreeNode getLeft() {
return left;
}
public void setLeft(TreeNode left) {
this.left = left;
}
public TreeNode getRight() {
return right;
}
public void setRight(TreeNode right) {
this.right = right;
}
@Override
public String toString() {
return "TreeNode [data=" + data+"]";
}
}
关于二叉排序树有插入、删除、查询和遍历的操作: