动态查找表(树表的查找)

一、二叉排序树(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的过程。
动态查找表(树表的查找)