当前位置: 首页 > news >正文

文明校园建设专题网站手机网站 手机app

文明校园建设专题网站,手机网站 手机app,北京建网站需要多少钱,网站科技动效文章目录1. 使用场景2. 性质3. 结点定义4. 结点旋转5. 结点插入1. 使用场景 Linux进程调度CFSNginx Timer事件管理Epoll事件块的管理 2. 性质 每一个节点是红色或者黑色根节点一定是黑色每个叶子节点是黑色如果一个节点是红色#xff0c;那么它的两个儿子节点都是黑色从任意… 文章目录1. 使用场景2. 性质3. 结点定义4. 结点旋转5. 结点插入1. 使用场景 Linux进程调度CFSNginx Timer事件管理Epoll事件块的管理 2. 性质 每一个节点是红色或者黑色根节点一定是黑色每个叶子节点是黑色如果一个节点是红色那么它的两个儿子节点都是黑色从任意一个节点到其每个叶子节点的所有路径都包含相同数目的黑色节点 3. 结点定义 typedef int KEY_TYPE;typedef struct _rbtree_node {unsigned char color;struct _rbtree_node *left;struct _rbtree_node *right;struct _rbtree_node *parent;KEY_TYPE key;void *value; }rbtree_node;4. 结点旋转 左旋实现 void _left_rotate(rbtree *T, rbtree_node *x) {rbtree_node *y x-right;x-right y-left;if (y-left ! T-nil){y-left-parent x;}y-parent x-parent;if (x-parent T-nil){T-root y;}else if (x x-parent-left){x-parent-left y;}else if (x x-parent-right){x-parent-right y;}y-left x;x-parent y; }右旋实现 void _right_rotate(rbtree *T, rbtree_node *y) {rbtree_node *x y-left;y-left x-right;if (x-right ! T-nil){x-right-parent y;}x-parent y-parent;if (y-parent T-nil){T-root x;}else if (y y-parent-left){y-parent-left x;}else if (y y-parent-right){y-parent-right x;}x-right y;y-parent x; }5. 结点插入 将新节点的颜色设为红色然后按照二叉查找树的规则插入到合适的位置 如果设置成黑色的话则必定会违反上述五条性质中的第五条 如果新节点是根节点那么将其颜色改为黑色结束 如果新节点的父节点是黑色那么不需要做任何调整结束 如果新节点的父节点和叔叔节点父节点的兄弟节点都是红色那么将它们的颜色改为黑色将祖父节点父节点的父节点的颜色改为红色然后把祖父节点作为新的当前节点重复步骤2和3 如果新节点的父节点是红色但叔叔节点是黑色或不存在那么分四种情况进行旋转和变色操作 新节点是父节点的左子节点且父节点是祖父节点的左子节点左左情况那么对祖父节点进行右旋并交换祖父和父亲的颜色新节点是父节点的右子节点且父节点是祖父节点的左子节点左右情况那么对父亲节点进行左旋并交换新节点和父亲节点的颜色然后把新节点作为当前节点转化为左左情况处理新节点是父亲节点的右子节点且父亲节点是祖父节点的右子节点右右情况那么对祖父节点进行左旋并交换祖父和父亲的颜色新节点是父亲节点的左子节点且父亲节点是祖父节点的右子节点右左情况那么对父亲节点进行右旋并交换新节点和父亲节点的颜色然后把新节点作为当前节点转化为右右情况处理 int key_compare(KEY_TYPE *a, KEY_TYPE *b) {//TODO }void rbtree_insert_fixup(rbtree *T, rbtree_node *z) {while (z-parent-color RED){if (z-parent z-parent-parent-left){rbtree_node *y z-parent-parent-right;if (y-color RED){z-parent-color BLACK;y-color BLACK;z-parent-parent-color RED;z z-parent-parent;}else{if (z z-parent-right){z z-parent;_left_rotate(T, z);}z-parent-color BLACK;z-parent-parent-color RED;_right_rotate(T, z-parent-parent);}}}T-root-color BLACK; }void rbtree_insert(rbtree *T, rbtree_node *z) {rbtree_node *x T-root;rbtree_node *y T-nil;while (x ! T-nil){y x;// 如果是自定义类型可以实现key_compare接口来进行比较if (x-key z-key){x x-right;}else if (x-key z-key){x x-left;}else{return;}}z-parent y;if (y T-nil){T-root z;}else if (z-key y-key){y-right z;}else{y-left z;}z-left T-nil;z-right T-nil;z-color RED;rbtree_insert_fixup(T, z); }
http://www.hkea.cn/news/14424414/

相关文章:

  • 怒江州建设局网站巫溪网站建设
  • 综合性医院网站源代码下载wordpress采集文章后定时发布
  • 德州汇泽网站建设南宁做网站外包
  • 姑苏区最新通告东莞seo整站优化
  • 网站建设方案书写安庆什么网站做火
  • 国家建设局网站公司网站做的一样算不算侵权6
  • “设计网站”网站域名区别
  • 如何做 行业社交类网站怎么用网站模板
  • 有什么兼职做设计的网站好第一次跑业务怎么找客户
  • 电信宽带做网站大埔县住房和城乡规划建设局网站
  • 北京网络建站模板国外超酷设计网站
  • 域名网站备案管理系统微信如何建商城网站
  • 自己建设网站需要什么北京市建设工程信息网知名中项网
  • 商城网站建设精英网站建设目标有哪几个方面
  • 国外专门用于做网站图片的电工应用技术网站资源建设
  • 鸟人高端网站建设专业网站建设专业网站设计
  • 珠海网站建立云浮网站建设
  • 在线做印章网站做的图怎么上传到网站
  • 成品软件网站大全推荐最近十大新闻
  • 服务器上的网站打不开中国最新军事新闻 今天
  • 佛山做外贸网站目前做网站流行的语言
  • 网页设计旅游网站前言名表网站
  • 网站应用网站开发中国最大的网站建设公司
  • 百度可以做网站吗最新军事动态
  • 淮南品牌网站建设电话宁波品牌网站建设公司
  • 网站手机源码网站开发算不算软件企业
  • 制作网站的公司叫什么宁德城乡建设部网站首页
  • 网站课程设计报告清新网站设计
  • 做贸易常用的网站阜阳网站优化
  • wordpress 多网站php自己写框架做网站6