专题:二叉搜索树BST
一、定义
二叉搜索树(Binary Search Tree),也称有序二叉树或排序二叉树,是指一棵空树或者具有下列性质的二叉树:
1. 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
2. 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
3. 任意节点的左、右子树也分别为二叉搜索树。
也就是说:设x是二叉搜索树中的一个节点。
如果y是x的左子树中的一个节点,则有y.key<x.key;
如果y是x的右子树中的一个节点,则有y.key>x.key。
二、结构与基本操作
1. 二叉搜索树具有很高的灵活性,对其优化可以生成平衡二叉树,红黑树等高效的查找和插入数据结构。
2. 基本操作:
(1)查找:查询是否包含某个数值
该查找方法也叫“树表查找”。类似二分查找,将待查找数值val和当前节点的值key比较:
若val=key,表示找到,返回该值或者找到的信息;
若val<key,则往左儿子节点走,在左子树中继