学习红黑树过程中的个人总结
在知乎老师的帮助下,刚刚开始学习红黑树,个人的总结记录下
对于TreeMap.class添加方法的了解:
先贴代码(TreeMap.class添加调整方法):
这个是添加代码里面最后调用的方法,用于调整红黑树,之前的操作请百度平衡二叉树进行学习,这里只说调整方法
一共分为4种情况(实际来说3种,这里为了方便记录):
当新增节点父级节点是祖父级节点的左儿子时:
第一种情况:
第二种情况:
当新增节点父级节点是祖父级节点的右儿子时:
第一种情况:
第二种情况:
红黑树的添加调整方法,就先记录到这里
对了,别忘了最后把根节点设置成黑色
root.color = BLACK;//设置根节点为黑色
自己的总结:
三种情况(当前节点的父节点为红色):
1.当叔叔节点为红色:把父节点和叔叔节点设置成黑色,祖父设置成红色,把当前节点的引用指向祖父节点,继续循环判断
2.当叔叔节点为黑色:如果当前节点是父节点的右孩子,对父节点进行左转,然后当前节点引用指向父节点,然后把父节点设置成黑色,祖父节点设置成红色,对祖父节点进行右转
3.当叔叔节点为黑色:如果当前节点是父节点的左孩子,对父节点进行右转,然后当前节点引用指向父节点,然后把父节点设置成黑色,祖父节点设置成红色,对祖父节点进行右转
转载于:https://www.cnblogs.com/jianguang/p/6972370.html
学习红黑树过程中的个人总结相关推荐
- 算法学习----红黑树
算法学习----红黑树 红黑树的介绍 先来看下算法导论对R-BTree的介绍: 红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black. 通过对任何一条从根到叶子 ...
- 拒绝枯燥,用生动的例子带你学习红黑树
/ 今日科技快讯 / 2019胡润百富榜于今日(10月10日)揭晓,今年百富榜前十位的上榜门槛比去年上升100亿元,达到1200亿元.马云家族以2750亿元财富位列第一,第三次成为中国首富:马 ...
- 如何学习Java? 在学习Java的过程中需要掌握哪些技能?
作为刚刚进入Java领域的新同学,无论是高校的毕业大学生,还是有志转行的在职人员,都面临着诸多如下的困惑:如何学习Java? 在学习Java的过程中需要掌握哪些技能?Java学习过程中有哪些注意事项? ...
- 在学习python的过程中,遇到的最大的困难是什么?
本人文科生,回顾自己近 2 年的Python 自学经历,有一些学习心得和避坑经验分享给大家,让大家在学习 Python 的过程中少走一些弯路!减少遇到不必要的学习困难! 首先,最开始最大的困难应该就是 ...
- java红黑树_JAVA学习-红黑树详解
1.定义 红黑树是特殊的二叉查找树,又名R-B树(RED-BLACK-TREE),由于红黑树是特殊的二叉查找树,即红黑树具有了二叉查找树的特性,而且红黑树还具有以下特性: 1.每个节点要么是黑色要么是 ...
- scheme 学习:红黑树
这几天继续学习scheme,scheme中虽然有hashtable但没有类似C++中的map,于是把C版本中的红黑树移植到scheme(中间也发现了C版本中的一些问题,暂时懒得调整了^()^) 以作为 ...
- 学习python/pytorch过程中遇到的知识点
Pytorch torch.backends.cudnn.deterministic 和 torch.backends.cudnn.benchmark 这两个参数,用于固定算法,使每次运行结果都一样. ...
- 【入门PLC】01、博途TIA Portal 软件的使用学习以及安装过程中出错的问题解决(超有用)
目录 一.前言 1.推荐安装教学 2.win CC安装问题 二.学习视频 三.学习笔记 (一).认识博途 1.1.创建项目 1.2.编写程序 (二).基础知识介绍 2.1.基本指令 2.2.操作数标识 ...
- 算法基础知识科普:8大搜索算法之红黑树(中)
红黑树也是一种特殊形式的二叉搜索树,通过结点的颜色以及三条规则来保证二叉搜索树的平衡.规则1:根结点的颜色是黑色,规则2:叶子结点到根结点路径上遇到的黑色结点数目相同,规则3:叶子结点到根结点路径上无 ...
最新文章
- type python_typepython
- golan web扫雷
- socket穿透代理代码(C++版)
- 类的扩充 js中面向对象的技术
- 外媒:伊朗政府封锁加密通讯应用Signal
- 三星性能测试软件,三星R25的性能测试
- 关于MJ刷新的报Too many arguments to function call, expected 0, have *问题
- codeforces920 C. Swap Adjacent Elements【连通块 + 前缀和】
- erlang游戏服务器
- bzoj3265 志愿者招募加强版
- 初识EMC元器件(五)——电容参数解读及选型应用
- 拯救阿波罗14号!那些伟大太空计划背后的计算机工程师们
- ACM组合数学题目列表
- Java数组可变长参数详解
- 微信公众号开发系列-网页授权获取用户基本信息
- 苏州OJ c001: 合并同类项
- 共享单车维护任务完成概率防策略机制设计
- 编译原理陈火旺版第四章课后题答案
- 【C语言学习疑难杂症】Stack arround the variable was corrupted问题
- [Kindle]如何用邮箱发送文件至Kindle设备?