关联式容器之底层红黑树

不论是rb_tree的节点或迭代器,都是以struct的结构完成,struct的所有成员都是public,可被外界自由取用
摘要由CSDN通过智能技术生成

关联式容器分为set(集合)、map(映射表),以及两个衍生体multiset(多键集合)、multimap(多键映射表),它们的底层机制都是RB_tree(红黑树),RB_tree也是一个独立容器,只不过不对外界开放。
还有一些不在标准之内的关联式容器
这里写图片描述
所谓的关联式容器,就是每一个元素都有一个键值(key)和一个实值(value),当元素被插入到容器中时,容器内部便依照某种规则将元素放在合适的位置,所以关联式容器没有所谓的首尾元素,也就不会有push_back,push_front,pop_back,pop_front,begin,end类似这样的操作
set的键值就是实值,map的键值和实值分开

1、平衡二叉搜索树(binary search tree)
提供对数的元素搜索和插入时间,二叉搜索树元素的放置规则:
(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
所以一直往左,到无路可走时找到最小值,反之,可找到最大值。
AVL,RB_tree,AA_tree也属于平衡二叉树的一种。

平衡树被破坏的四种插入情况:
(1)、插入点位于左子节点的左子树——左左;
(2)、插入点位于左子节点的右子树——左右;
(3)、插入点位于右子节点的左子树——右左;
(4)、插入点位于右子节点的右子树——右右;
其中(1)(4)称为“外侧”插入,使用单旋转即可调整;
(3)(4)称为“内侧”插入,需要使用双旋转调整。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值