一、二叉搜索树
1.性质
每个结点都有一个作为搜索一句的关键码,所有结点关键码不同;
左子树的所有结点的关键码都小于根结点的关键码。
右子树的所有结点的关键码都大于根结点的关键码。
左子树右子树也是二叉搜索树。
2.二叉搜索树的搜索
用递归。
3.二叉搜索树的插入
每次插入都要从根结点出发搜索插入位置,然后把新结点作为叶结点插入。
4.二叉搜索树的删除
三种情况。
1)如果右子树为空,用左子女填补。
2)如果左子树为空,用右子女填补。
3)如果左右子树均不为空,在右子树中寻找中序下第一个结点(关键码最小)来填补,再来处理那个结点的删除问题,这是个递归处理。
5.最优二叉搜索树
动态规划,算法导论上的例子。
参见博客http://blog.csdn.net/xiajun07061225/article/details/8088784
二、AVL树
1.AVL树又称高度平衡的二叉搜索树,左子树和右子树都是AVL树,且左子树右子树的高度之差的绝对值不大于1。
2.平衡化旋转
四种旋转方式。