初学红黑树

面试当中经常会问到红黑树,由于自身数据结构基础不扎实,现在补补红黑树。

参考文章:高性能服务器开发公众号,好好学算法系列文章。

什么是红黑树?
红黑树是一种特殊的二叉搜索树,红黑树的每个节点上都有存储位表示节点的颜色,红或者黑。
什么是二叉搜索树?
就是树的所有节点满足:左孩子的值小于父结点,右孩子的值大于父结点。

红黑树的特性:
1.节点要么是红色,要么是黑色
2.根节点是黑色
3.叶子节点是黑色(NULL)
4.如果一个节点是红色,则它的孩子一定是黑色
5.每条从节点到叶子节点的路径上黑色节点的数目是相同的     思考:这个特性有什么用呢?

红黑树已经应用在了一些地方:
Java: TreeSet,TreeMap
C++ STL: set, Map
Linux: epoll模型中据说也使用到了红黑树





全部评论

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗? 刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务