- 博客(3)
- 收藏
- 关注
原创 nginx数据结构之红黑树(2)
1 红黑树简介红黑树是一种自平衡的二叉查找树,不同于AVL树,它并不是绝对平衡的,它是在一定规则下维持的平衡。红黑树的规则:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色的。(3)每个叶子结点为黑色(这里叶子结点指的是空结点,个人认为在操作红黑树时,可以忽略该条规则)。(4)红色结点的孩子结点必须是黑色的,即两个红色结点不能相邻.(5)从一个结点开始到达每个叶子结点的路径黑色结点的数目都是相同的,又可将红黑树的平衡看为黑色平衡。2 红黑树的操作找到待插入的位置,将新插入的结点的颜
2021-02-22 23:46:10 100
原创 nginx数据结构之红黑树(1)
nginx中的定时器实际上就是一颗红黑树,本文主要对红黑树进行一下解读。红黑树的由来红黑树是一种自平衡的二叉查找树,提起二叉查找树,每个人都能快速反应过来是什么,下面简单的列出二叉查找树的结点插入与删除方法。1) 二叉查找树插入方法:tree_s * insert_node(tree_s * root, int n){ if(root == NULL) { root = new tree_s(n); return root; } if(root->value < n)
2021-02-20 18:01:31 239
原创 nginx源码解析(2)
nginx中的定时器服务器中定时器是重要的组成部分,nginx也不例外,nginx将定时器作为一种事件类型来进行处理。在nginx中利用红黑树来存储定时器,至于为什么选择红黑树,个人认为主要是为了兼顾查找、插入、删除的效率而选取的折中方案。1 定时器的初始化、添加、删除初始化定时器,即创建一颗红黑树ngx_int_t ngx_event_timer_init(ngx_log_t *log){ ngx_rbtree_init(&ngx_event_timer_rbtree, &
2021-02-09 18:58:02 108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人