一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!( 四 )
红黑树是什么?怎么实现?时间复杂度 红黑树(Red-Black Tree , 简称R-B Tree) , 它一种特殊的二叉查找树 。 红黑树是特殊的二叉查找树 , 意味着它满足二叉查找树的特征:任意一个节点所包含的键值 , 大于等于左孩子的键值 , 小于等于右孩子的键值 。 除了具备该特性之外 , 红黑树还包括许多额外的信息 。
红黑树的每个节点上都有存储位表示节点的颜色 , 颜色是红(Red)或黑(Black) 。 红黑树的特性: (1) 每个节点或者是黑色 , 或者是红色 。 (2) 根节点是黑色 。 (3) 每个叶子节点是黑色 。 (4) 如果一个节点是红色的 , 则它的子节点必须是黑色的 。 (5) 从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点 。
关于它的特性 , 需要注意的是: 第一 , 特性(3)中的叶子节点 , 是只为空(NIL或null)的节点 。 第二 , 特性(5) , 确保没有一条路径会比其他路径长出俩倍 。 因而 , 红黑树是相对是接近平衡的二叉树 。
?
具体实现代码这里不贴了 , 要实现起来 , 需要包含的基本操作是添加、删除和旋转 。 在对红黑树进行添加或删除后 , 会用到旋转方法 。 旋转的目的是让树保持红黑树的特性 。 旋转包括两种:左旋 和 右旋 。
推荐阅读
- |?王者荣耀:西游皮肤有杨玉环一份?甄姬喜提冰雪节皮肤
- 余霜|淘汰赛首日两人庆生,余霜第一份礼物来自faker,关系这么好?
- 全球总决赛|王一博为S11总决赛选手助威,方式非常特殊,LOL玩家获得一份厚礼
- |176复古「我本沉默」首测:蚂蚁洞、幽灵船、绿玉裁决、精灵の翔
- 地下城与勇士|DNF:你的刃影还在ASDFG滚键盘?一份刃影进阶小技巧不可少
- 河南|张大仙捐了不止100万,还给XYG捐了一份,明星都自愧不如
- 魔兽世界|《魔兽世界》新手选猎人,尽享全游独一份的驯服宝宝玩法
- 吕布|天美公布胜率倒数第一的英雄,看到数据面板,少不了德华的一份贡献
- 手机游戏|喜提英雄联盟手游内测资格,给你一份入坑指南。
- 关羽|元气骑士:关羽竟然有“死亡特效”!青龙护体,地牢独一份