Day3--搜索树

作者: Endeavor_ac89 | 来源:发表于2019-04-28 21:56 被阅读7次

在二叉判定树以及二分搜索的基础上,基于二叉树的搜索树产生,该数据结构可以随时进行调整,可以保证高效的搜索效率。

内容:

1.二叉搜索树

2.二叉平衡树

3.B-树

一、二叉搜索树

1、定义:(1)所有节点的值都不一样;(2)根节点的值大于左子树所有节点的值;(3)根节点的值小与右子树所有节点的值;(4)左右子树也都是二叉搜索树。

2、基本算法查找、插入和删除

    查找:类似于二分查找,将带查找的值与根节点的值比较,若小于根节点的值,则递归搜索根节点的左子树;否则递归搜索根节点的右子树;若等于根节点的值,则返回成功。

    插入:若根节点的为空,则将待插入的值作为根节点;若待插入值小于根节点,则递归搜索根节点的左子树至搜索失败,新建节点并令新节点的值等于待插入的值;若待插入的值大于根节点的值,按类似的方法搜索右子树。当待插入的值等于树中某一节点值时,返回。

    删除:当进行删除操作时,如果被删除的节点为叶子节点,则直接将叶子节点删除掉;如果被删除节点只有一个孩子,则将它的孩子代替被删除节点的位置;如果被删除的节点有两个孩子,则令其左子树中最大的元素代替被删除节点的位置,或者令被删除节点右子树中最小的节点代替被删除节点。

二、二叉平衡树

虽然二叉搜索树具有很强的搜索效率,但是假如插入的数据为一有序序列时,二叉树就变为了一个有序链表,搜索效率变低。为了解决这个问题,二叉平衡树出现了。

1、定义:二叉平衡树是一颗二叉搜索树,但是其每个节点左右子树的高度差小于1。

2、基本算法插入、删除

    插入:平衡树的插入与搜索树的插入相同,但是要保证其平衡性。当出现了不平衡现象时,要进行调整:

    (1)假设p指向AVL树的树根,若p==NULL,则插入元素的值为即为跟节点的值,树的高度+1。

    (2)若根节点不为空,调用Search(p,key)判断待插入元素在树内是否存在。若存在,则返回;若不存在,记录待插入位置A,并转入步骤(3)。

    (3)考虑离A最近的节点,若执行插入运算后改节点的平衡因子的绝对值大于一,则把该祖先节点的位置标记为B,左孩子为Bl,右孩子为Br。转入步骤(6)。

    (4)若从根节点到A位置的平衡因子都为0,则修改其平衡因子。当插入位置在某个节点的左子树上,改节点的平衡因子+1,插入位置若在某右节点的子树上时,改节点的平衡因子-1。树的高度+1。

    (5)若B的平衡因子为1,且新节点插入到B的右子树上时,则B的平衡因子该为0,树的高度不变。

    (6)此时B的平衡因子为2,下面细分LL型和LR型:

LL:如果Bl的平衡因子为1,新插入的节点插在Bl的左子树上,则向右旋转调节B为根的子树,树的高度不变;

LR型: 若Bl的平衡因子为-1,且新插入的节点在Bl的右子树上,则参考三原则,最以B为根的节点进行调整。树的高度不变。(一般是先左旋转后右旋转)

    (7)当B的平衡因子为-2时,对应的情况时RR和RL,与(6)类似。

三、B-树(明天更新)

相关文章

  • Day3--搜索树

    在二叉判定树以及二分搜索的基础上,基于二叉树的搜索树产生,该数据结构可以随时进行调整,可以保证高效的搜索效率。 内...

  • 2017-09-21

    DAY3--黑白灰

  • 搜索树

    目录 引入 二叉搜索树 平衡二叉树(AVL树) B树 红黑树 引入 使用线性表查找元素的时间复杂度是O(n);若使...

  • 数据结构与算法之二叉搜索树(八)

    目录 二叉搜索树概念二叉搜索树的接口设计,包括增,删,改,查平衡二叉搜索树 一 二叉搜索树 二叉搜索树是二叉树的一...

  • 数据结构 经典算法复习

    二叉搜索树, 平衡二叉树(AVL) 红黑树 B树(平衡多路搜索树) B+树(在B树上改造) 二叉搜索树...

  • Algorithm小白入门 -- 二叉搜索树

    二叉搜索树二叉搜索树 BSTBST 的基本操作计算合法的 BST 1. 二叉搜索树 BST 二叉搜索树(Binar...

  • 图解:什么是B-树、B+树、B*树

    1.二叉搜索树 在说B树之前,我们需要先了解一下二叉搜索树 二叉搜索树,顾名思义,是用来搜索的有序树 它具有以下特...

  • 有点乱

    B树,多路搜索树。

  • 23-红黑树

    1.二叉搜索树(BST)继承二叉树(BinaryTree) 2.平衡二叉搜索树(BBST)继承二叉搜索树(BST)...

  • 【数据结构】红黑树

    1、什么是红黑树? 红黑树是一个要求不那么严格的平衡二叉树搜索树(平衡二叉搜索树/AVL树=平衡二叉树+二叉搜索树...

网友评论

    本文标题:Day3--搜索树

    本文链接:https://www.haomeiwen.com/subject/xytsnqtx.html