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

有哪些网站可以做外贸/地推app

有哪些网站可以做外贸,地推app,云南科技网站建设,网站建设项目进展情况红黑树 概念红黑树的原理红黑树的效率红黑树的插入规则变色旋转变色红黑树的验证 代码如下 概念 红黑树本质也是一颗二叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约…

红黑树

  • 概念
  • 红黑树的原理
  • 红黑树的效率
  • 红黑树的插入规则
    • 变色
    • 旋转+变色
    • 红黑树的验证
  • 代码如下

概念

红黑树本质也是一颗二叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍,因⽽是接近平衡的。
红黑树与AVL树相比对于平衡的要求更加宽松,也就是说红黑树相比于AVL树是少了很多旋转的过程。
红黑树的创建需要遵循以下四个规则

  1. 每个结点不是红⾊就是⿊⾊
  2. 根结点是⿊⾊的
  3. 如果⼀个结点是红⾊的,则它的两个孩⼦结点必须是⿊⾊的,也就是说任意⼀条路径不会有连续的红⾊结点。
  4. 对于任意⼀个结点,从该结点到其所有NULL结点的简单路径上,均包含相同数量的⿊⾊结点。
    在这里插入图片描述
    注意:第四点是要求到所有的NULL结点而不是叶子结点,因此在《算法导论》中,其将所有的NULL结点写成黑色的NIL。

在这里插入图片描述

红黑树的原理

红黑树是如何确保最长路径不超过最短路径的两倍的?

  1. 由规则4可知,从根到NULL结点的每条路径都有相同数量的⿊⾊结点,所以极端场景下,最短路径就就是全是⿊⾊结点的路径,假设最短路径⻓度为bh(black height)。
  2. 由规则2和规则3可知,任意⼀条路径不会有连续的红⾊结点,所以极端场景下,最⻓的路径就是⼀⿊⼀红间隔组成,那么最⻓路径的⻓度为2*bh。
  3. 综合红⿊树的4点规则⽽⾔,理论上的全⿊最短路径和⼀⿊⼀红的最⻓路径并不是在每棵红⿊树都存在的。假设任意⼀条从根到NULL结点路径的⻓度为x,那么bh <= h <= 2*bh。

红黑树的效率

如果N是红黑树的结点,h是最短路径长度,所以2h<=N<22*h-1,所以时间复杂度约为logN

红黑树的插入规则

变色

首先,插入的结点一定是红色的,因为这才不会改变整体每条路径上的黑色结点数目,这里就需要进行分类了

  1. parent直接为黑色,直接插入红色结点即可。
  2. parent为红色,由于不能有连续的红色结点,所以需要将parent变为黑色,但由于需要保证黑色结点数目不变,这里如果uncle存在且为红,就将parent与uncle都变为黑色,同时将grandparent变为黑色。
    这两种情况只需要进行变色处理而不用旋转

旋转+变色

如果uncle存在且为黑色或者uncle不存在,那就需要进行旋转+变色,如果是这样

//		g
//   p		u
// c
//或者
// 		g
//	 p
//c

就进行右单旋+变色,将parent变为黑色,grandparent变为红色,其余情况就不一一列举,有右单旋+变色,有双旋+变色,旋转的情况和AVL其中一样。

红黑树的验证

验证该树是不是红黑树,其实只需要判断每条路径上面的黑色结点是否相同即可

代码如下

红黑树

http://www.lryc.cn/news/577953.html

相关文章:

  • dw做网站导航/职业技能培训平台
  • 成都娱乐场所最新消息/seo推广培训
  • 网站建设存在困难/百度一下就一个
  • 制作快递网站/手机自己怎么建电影网站
  • 15个html5手机网站模板/seo营销方法
  • 成绩查询网站开发/如何快速推广一个新产品
  • 注册服务器网站哪个好/如何在百度上添加自己的店铺
  • 深圳做网站/在线crm网站
  • 洛阳做网站的/百度公司地址
  • 做我女朋友程序网站/网站推广排名服务
  • 网站详情页用哪个软件做/挖掘关键词的工具
  • 石家庄网站建设seo优化营销/软文代写价格
  • 宁波网站建设培训/seo关键词挖掘
  • 自动发文章到WordPress/网络seo是什么工作
  • wordpress如何查看网站日记/搜索热词排行榜
  • 泉州网站关键词排名/泰安网站建设
  • 网站建设与维护期末试卷/百度在线客服问答
  • 徐水网站建设/网站制作培训
  • 怎么在中国移动做网站备案/百度ai人工智能
  • 江西南昌网站建设公司哪家好/seo和sem推广
  • 淮南网云小镇房价/手机网站关键词seo
  • 中小企业网站该怎么做/品牌推广的具体方法
  • 北京企业建设网站/今日国际军事新闻最新消息
  • 淮南做网站/长沙靠谱关键词优化服务
  • 如何防止网站攻击/成都建设网官网
  • 用空间做网站如何做好安全/推广营销app
  • 蚌埠网站开发外包/学生个人网页制作教程
  • 搜索别人的网站是带logo的请问怎么做的/北京百度seo排名
  • 社交网站开发语言/临沂森工木业有限公司
  • 网站用户后台是怎么做的/网络推广方案范文