Advertisement

6. Nginx 红黑树(RBTree)

阅读量:

Nginx的定时器管理机制通过引入红黑树数据结构得以实现,该结构在众多开源项目中被频繁采用。

红黑树属于一种具备自平衡特性的二叉搜索树,其查找、插入与删除操作均可在O(log n)的时间复杂度内完成,其中n代表树中存储的元素数量。

该数据结构是一种特殊的二叉搜索树,每个节点均附带颜色属性,颜色可为红色或黑色。除了满足普通二叉搜索树的基本条件外,红黑树还需遵循以下附加规则:

(1)节点的颜色只能是红色或黑色

(2)根节点必须为黑色

(3)所有叶子节点均为黑色(此处的叶子指代NIL节点)

(4)任意红色节点的两个子节点必须均为黑色

(5)对于任意给定的节点,从该节点出发到其所有叶子节点的路径中,所包含的黑色节点数目必须保持一致

复制代码
 /*core/ngx_rbtree.h */

    
 typedef struct ngx_rbtree_s  ngx_

全部评论 (0)

还没有任何评论哟~