• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

数据结构--B树、B+树、红黑树区别

武飞扬头像
@snow'
帮助1

1、B树---多路搜索树(有序)

(1)定义任意非叶子结点最多只有M个儿子;且M>2;

(2)每个非叶子结点存放关键字及其关系(指针) 

         保存键值对(记录表中的主键)、指针(子结点地址)、数据

         比平衡二叉树(AVL)减少了一次IO操作

(3)所有叶子结点位于同一层,且不带信息

          一般b树下会加一层全空的叶子结点,代表查找失败,程序中就是用空指针代表

           查找中也叫做外结点

(4)遵循二叉排序树规则:左<根<右(5)每个节点

优点:

    关键字总数相同的情况下B树的高度越小,磁盘I/O所花的时间越少,

    b树多路有序特点减少了I/O操作

   

2、B 树---多路搜索树(有序)

  (1)B 树是B-树的变体,定义基本和B树相同

  (2)非叶子结点存放关键字的信息,叶子结点存放关键字

  (3)叶子结点在同一层,且用链表连接

   优点:  

       所有数据都按照键值大小顺序放在同一层的叶子节点上,并且所有相邻的叶子节点使用链表进行连接,不再需要中序遍历

      非叶子节点上只存储key值信息,这样大大加大每个节点存储的key值数量,降低B 树的高度

3、红黑树--平衡二叉排序树(有序)

   (1)根结点是黑的

   (2)基本是一层红的一层黑的,但每层的null结点一定是黑的

            即,除叶子结点外,父子不同色

   (3)平衡二叉排序树

            平衡:|每个结点左孩子高度-右孩子高度|<=1

            二叉排序树:有序

     (4)一棵含有n个节点的红黑树的高度至多为2log(n 1).

         高度为h的红黑树,它的包含的内节点个数至少为 2bh(x)-1个。

   (5)用来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高。

  4、应用

        Java集合中的TreeSetTreeMap

        C STL中的set、map,

        Linux虚拟内存的管理

参考整理:

https://segmentfault.com/a/1190000020416577

https://segmentfault.com/a/1190000023016648?utm_source=sf-similar-article

https://www.cnblogs.com/skywang12345/p/3245399.html

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggffji
系列文章
更多 icon
同类精品
更多 icon
继续加载