- 2
- 0
- 约1.39千字
- 约 32页
- 2020-02-16 发布于上海
- 举报
第八章 字典的树型实现;二叉排序树
平衡二叉排序树(AVL树)
B-树
;二叉排序树; 中序遍历序列是有序序列!;或者为空树,或者是满足下列性质的二叉树:
若左子树不空,则左子树上的所有结点的值都小于根结点的值;
若右子树不空,则右子树上的所有结点的值都大于根结点的值
左右子树也分别为二叉排序树。;若根结点为空,则检索失败;
否则关键码与根关键码比较:
= :检索成功
:转到左子树继续
:转到右子树继续
;二叉排序树的插入——为叶子;希望树形不要太“偏沉”,尽可能“平衡”,使得树的深度小,从而ASL小!; case 1:若要删除的结点是叶子,则直接删!; case 2:若要删除的结点只有一棵子树,则跨越删除!;Case 3:若删除的结点有两棵子树,则
方法1:跨越删除后,右子树挂到最右下;
问题:易导致树的深度变得很大!
;Case 3:若删除的结点有两棵子树,则
方法2:利用左子树的最右下(最大)结点,充顶被删结点的位置!
好处:树的深度不会增加!
; 插入、删除较为简单
平均的检索效率高:O(logn)
致命缺点:操作效率没有保证。
由插入、删除操作的自然性和简单化处理,可能出现极度“偏沉”的树形。;平衡二叉排序树;平衡二叉树、结点的平衡因子;平衡二叉排序树;平衡二叉排序树的插入;先找到离插入点最近的失衡结点,就地处理!
这意味着局部之外的结点的平衡因子在插入的前后保
原创力文档

文档评论(0)