红黑树的实现,对于基础不太好的同学理解起来困难(说的就是我——劝退)。学习红黑树的代码实现,对平时做项目开发基本没有太大帮助。对于绝大部分开发工程师来说,这辈子可能都用不着亲手写一个红黑树。
对于我而言,有的放矢去学习。把平时要用的、基础的东西都搞会了,如果有余力再来深入地研究这节内容。
补充:
一棵合格的红黑树需要满足这样几个要求:
- 根节点是黑色的;
- 每个叶子节点都是黑色的空节点(NIL),也就是说,叶子节点不存储数据;
- 任何相邻的节点都不能同时为红色,也就是说,红色节点是被黑色节点隔开的;
- 每个节点,从该节点到达其可达叶子节点的所有路径,都包含相同数目的黑色节点。