动态查找表(树表的查找)
一、二叉排序树(BST)
●关于BST平均查找长度的计算:
掌握BST的删除操作的手工实现:
(1)删除结点是叶子结点:直接删除
(2)删除结点只有一棵左子树或右子树:将其孩子放到自己现在的位置
栗子:
(3)删除的结点p有左子树,也有右子树
方法一:p与中序直接前驱交换,再删除p(通常用此方法)
方法二:p与中序直接后继交换,再删除p
在中序(LPR)线索二叉树的遍历那里,介绍过这样一个规律,回忆一下:
p结点的中序直接前驱就是其左子树中最右下的结点(也就是值最大的那个结点),该结点一定没有右子树
p结点的中序直接后继就是其右子树中最左下的结点(也就是值最小的那个结点),该结点一定没有左子树
二、平衡二叉树
●关于AVL树插入结点导致不平衡时调整的手法:
提一下平衡因子:该结点左子树的高度减去右子树的高度(同理也可以是该结点右子树的高度减去左子树的高度)。对于平衡二叉树,树中的所有结点的平衡因子的取值只为:0,-1,1。
●删除AVL树的结点(肯定还得牵扯平衡调整的问题喽)
栗子:以关键字序列为{16,3,7,11,9,26,18,14,14,15}构造出的平衡二叉树,依次删除结点11,9,15的过程。