红黑树笔记

1、红黑树

1.1、介绍

  • 红黑树(Red-Black Tree,RBT)是一个自平衡树二叉树,不是绝对的平衡,不一定要求左右子树高度之差是1以内
  • 有N个节点的红黑树,高度最多只有2log(N+1)

1.2、规则

  • 每一个节点只能是红色,或者黑色,二选一
  • 树的根节点是黑色的
  • 如果节点是红色的,那么这个节点的子节点一定是黑色的
  • 从一个节点到该节点下的null节点(就是叶子节点的子节点)的每条路径下,必须包含相同数目的黑色节点

1.3、红黑树的操作

  • Recoler,重新标记树的颜色
  • Rotation,旋转,将树达到平衡状态

2、红黑树插入操作

1. 将新插入的X节点标记为红色

2. 如果X是根节点,那么将其标记为黑色,结束

3. 如果X的parent是红色,

  3.1. 如果X的Uncle是红色

    3.1.1. 将X的Parent和Uncle标记为黑色

    3.1.2. 将Grand Parent祖父标记为红色

    3.1.3. 将X的颜色标记为与X的祖父相同,将曾祖父作为X,重复操作2、3,直到发现根节点,将其标记为黑色

  3.2. 如果X的Uncle是黑色,需要分四种情况处理

    3.2.1. 左左,Parent是Grand Parent的左儿,X是Parent的左儿。这种情况很简单,想象这是一根绳子,手提起 Parent 节点,然后变色即可(将Parent变为红色,然后其作为X,重复2、3)

    3.2.2. 左右,Parent是Grand Parent的左儿,X是Parent的右儿。左旋: 使 X 的父节点 Parent被 X 取代,同时父节点 Parent 成为 X 的左孩子,然后再应用3.2.1左左情况

    3.2.3. 右右,Parent是Grand Parent的右儿,X是Parent的右儿。与左左情况一样,想象成一根绳子

    3.2.1. 右左,Parent是Grand Parent的右儿,X是Parent的左儿。右旋: 使 X 的父节点 Parent 被 X 取代,同时父节点 Parent 成为 X 的右孩子,然后再应用3.2.3右右情况

 

 

 

 

 

 

 

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值