用红专题

[C++][数据结构]用红黑树封装map和set(包含红黑树迭代器)

引入 官方文档中,我们可以看到map和set都是用一个红黑树来实现的,那set不给出value、map给出了value,这两个不一样,是如何用一个红黑树来实现的呢? 基本结构 节点的定义 代码中,将pair换成了data template<class T>struct RBTreeNode`在这里插入代码片`{RBTreeNode<T>* _left;RBTreeNode<T>* _

【C++】用红黑树封装map和set

我们之前学的map和set在stl源码中都是用红黑树封装实现的,当然,我们也可以模拟来实现一下。在实现之前,我们也可以看一下stl源码是如何实现的。我们上篇博客写的红黑树里面只是一个pair对象,这对于set来说显然是不合适的,所以要想让一个红黑树的代码同时支持map和set,就用上模板就可以了 我们来看看stl源码中是如何实现的 前两个模板参数是两个类型,就是我们要在set或map中

波奇学C++:用红黑树模拟实现map和set

用同一个树的类模板封装map(key/value)和set(key) 红黑树的Node template<class T>struct RBTreeNode{RBTreeNode<T>* _left;RBTreeNode<T>* _right;RBTreeNode<T>* _parent;T _data;Colour _col;RBTreeNode(const T& data):_left