数据结构和算法-8-红黑树

红黑树

- 解决非平衡树问题;

- 增加了某些特点的二叉搜索树 , 自平衡二叉搜索树

- 特征:

- 节点都有颜色(红黑,为了区分两种状态,bolean);

- 在插入和删除的过程中,要遵顼保持这些颜色的不同排列规则,规则如下: 1. 每个节点不是红就是黑;

2. 根总是黑色的;

3. 若节点是红色,则其子节点叶子结点怎么算须是黑色,反之到不一定必须为真;

4. 根到叶节点或空子节点叶子结点的每条路径,必须包含相同数目的黑色节点(black height,黑色高度) (空子节点:即一个节点有左子节点没有右子节点,那么该右子节点的位置就是空子节点,有右无左亦然);

5. 空子节点是黑色的;

- 重复关键字红黑双面尺:

- 把有相同关键字的数据项分配到其他也有相同关键字数据项的两侧很重要;

- 如40,40,40,要吧第二个其他货币资金40放到第一个40的右侧,第三个40放到第一个40的左侧;

- 如何修正违规的情况:

1. 改变节点的颜色;红黑商战游戏规则

2. 执行旋转操作,旋转必须一次做其他应付款以下两件事:(左旋,右旋):

- 使一数据结构c语言版课后答案些节点上升,一些节点下降,数据结构帮助树平衡;

- 保证不破坏二叉搜索树的特征(左小右大);

红黑树的实现

1. 创建一个节点的基类

2. 创建树的基类

3. 红红黑商战游戏规则黑树的节点类:


                                            数据结构和算法-8-红黑树

4. 红黑树的实现类,代码稍多,其中会有些注释作为说明:


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树


                                            数据结构和算法-8-红黑树

5. 红黑树的使用测试:


                                            数据结构和算法-8-红黑树

我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新数据结构课程设计心得体会文章