红黑树的迭代器
迭代器的好处是可以方便遍历,是数据结构的底层实现与用户透明
打开C++的源码我们可以发现, 其实源码中的底层大概如下图所示:
这里额外增加了一个header指针, 有了这个指针可以更方便的找到根节点...如果右为空, 我们就需要访问孩子是父亲左的那个祖先,因为中序的遍历的顺序为左 根 右,当前节点访问完了, 说明我这棵树的左根右访问完了, 要去访问上一棵树的根....self& operator++()
{
if (_node->_right)
{
//右不为空, 右子树的最左节点就是中序的下一个
Node* leftMost = _node-...我们需要的比较方式是按照pair中的key来比较, 但是pair的底层比较方法并不是, 还有关于find函数, 我们实现查找难道要传递一个pair查找吗, 那如何实现英汉互译那种场景呢?...C++STL底层pair的比较方法
所以我们进行改造, 统一讲key和pair改为模板T
template
class RBTree