前言:
本篇开始,写一个红黑树的小系列,红黑树的结构非常复杂,所以需要好几篇才能写完。本篇主要介绍红黑树的前期理论储备和创建以及插入节点。
一、红黑树的规则:
1、每一个节点不是红色的就是黑色的。
2、红黑树的根总是黑色的。
3、如果节点是红色的,则它的子节点必须是黑色的
4、从根到叶节点的每条路径,必须包含相同数目的黑色节点。
二、今天要创建的红黑树是这样的:
代码如下:
#include <iostream>
using namespace std;
template < class T>
class RedBlackTree; //红黑树
template <class T>
class RedBlackTreeNode; //红黑树节点
template <class T>
class RedBlackTree
{
typedef RedBlackTreeNode<T> Node;
public:
enum { B