这个问题在这里已经有了答案:What'sthetimecomplexityofiteratingthroughastd::set/std::map?(2个答案)关闭7年前。问题:STL红黑树(STL_tree.h)中序迭代时间复杂度是O(NlnN)吗?我在网上搜索,找不到答案。我认为任何ADT的有序迭代的时间复杂度应该是O(N)。如果我错了,请告诉我。我从这段代码中查看了STLRB树(https://www.sgi.com/tech/stl/stl_tree.h)看来迭代器的++运算符不是O(1)而是O(lnN)。void_M_increment(){if(_M_node->_M_ri
文章目录1、前言2、红黑树的概念3、红黑树的性质4、红黑树节点的定义5、红黑树的插入Insert6、红黑树的验证7、红黑树与AVL树的比较附录:1、前言我们在学习了二叉搜索树后,在它的基础上又学习了AVL树,知道了AVL树是靠平衡因子来调节左右高度差,从而让树变得平衡的。本篇我们再来学习一个依靠另一种平衡规则来控制的二叉搜索树——红黑树。2、红黑树的概念红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。3、红黑树的性质1.每个结点不
文章目录一、红黑树的概念二、红黑树的性质三、红黑树结点的定义四、红黑树的插入操作4.1情况一:uncle存在且为红4.2情况二:uncle不存在4.3情况三:uncle存在且为黑4.4插入完整源码五、红黑树的验证六、红黑树与AVL树的比较七、结语一、红黑树的概念红黑树是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,这句话换个意思就是:红黑树中最长路径不超过最短路径的2倍。因而是接近平衡的,而AVL树是严格平衡的,这就导致,红黑树的高度会比AVL树高一些,但