multiset底层原理,红黑树原理

简介: multiset底层原理,红黑树原理

multiset 底层实现原理

mulitiset 默认采用 less ,即由小到大的顺序排序

平衡二插搜索树

//AVL树
typedef struct TreeNode {
  struct TreeNode *parent;
  struct TreeNode *left;
  struct TreeNode *right;
  int key;  //维持有序
  int data;  //节点尔达斯信息
  //bool color 红黑树当中还具有color信息
} TreeNode;
void inorder (TreeNode *node) {
  if (node != nullptr) {
    inorder(node->left);
    printf("k:%d v:%d", node->key, node->data);
    inorder(node->right);
  }
}

STL中红黑树的实现

记录的信息:a. 根节点位置;b. 最左侧节点位置;c. 最右侧节点位置。迭代器采用中序遍历的方式进行遍历。

类比 set、multiset、map、multimap

  1. setmultiset会根据特定的排序准则自动将元素排序,set中元素不允许重复,multiset可以重复.
  2. mapmultimap将key和value组成的pair作为元素,根据key的排序准则自动将元素排序(因为红黑树也是二叉搜索树,所以map默认是按key排序的),map中元素的key不允许重复,multimap可以重复 。
#include <set>
#include <map>
#include <iostream>
using namespace std;
int main() {
  set<int> s;
  multiset<int> ms;
  map<int,int> m;
  multimap<int,int> mm;
  return 0;
}

充电站

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习


相关文章
|
8月前
【数据结构】红黑树的原理及其实现
【数据结构】红黑树的原理及其实现
|
5月前
|
存储 Java 程序员
"揭秘HashMap底层实现:从数组到链表,再到红黑树,掌握高效数据结构的秘密武器!"
【8月更文挑战第21天】HashMap是Java中重要的数据结构,采用数组+链表/红黑树实现,确保高效查询与更新。构造方法初始化数组,默认容量16,负载因子0.75触发扩容。`put`操作通过计算`hashCode`定位元素,利用链表或红黑树处理冲突。`get`和`remove`操作类似地定位并返回或移除元素。JDK 1.8优化了链表转红黑树机制,提升性能。理解这些原理能帮助我们更高效地应用HashMap。
53 0
|
7月前
|
算法 架构师 NoSQL
【数据结构之红黑树】深入原理与实现
意节点的左子树和右子树的层高差不大于1,为了维护树的平衡,我们介绍了树的左右旋转。但是,AVL树维护平衡的代价是比较大的。所以,我们又介绍了红黑树这种数据结构,这是因为红黑树插入的效率相对AVL树是比较高的,在统计意义上来讲红黑树在插入和查找综合上效率是比较高的,这也是为什么红黑树为什么广泛应用在计算机各个方面。
71 2
|
7月前
|
C++
数据结构===红黑树
数据结构===红黑树
|
8月前
|
存储
红黑树底层实现
红黑树底层实现
|
8月前
|
算法
红黑树的原理及实现
红黑树的原理及实现
89 0
|
存储 算法 安全
HashMap的遍历方式及底层原理
HashMap的遍历方式及底层原理
HashMap源码学习:红黑树原理详解
HashMap源码学习:红黑树原理详解
74 0
|
存储 JavaScript 索引
基础数据结构(三):链表结构 LinkedList(TS版)
基础数据结构(三):链表结构 LinkedList(TS版)
基础数据结构(三):链表结构 LinkedList(TS版)

热门文章

最新文章