我从http://web.mit.edu/~emin/www.old/source_code/cpp_trees/index.html获取了这段代码。这个红黑树节点的构造函数如下:
RedBlackTree::RedBlackTree()
{
nil = new RedBlackTreeNode;
nil->left = nil->right = nil->parent = nil;
nil->red = 0;
nil->key = MIN_INT;
nil->storedEntry = NULL;
root = new RedBlackTreeNode;
root->parent = root->left = root->right = nil;
root->key = MAX_INT;
root->red=0;
root->storedEntry = NULL;
}
什么是nil,为什么在构造函数中初始化它?我能否只声明一个空节点在我的私有数据字段中,并在插入函数中初始化它?
nil
是一个叶子节点。看红黑树的一种方式是将所有叶子节点视为nil
节点。 - scohe001