【文件属性】:
文件名称:红黑树_ C++模板实现
文件大小:11KB
文件格式:CPP
更新时间:2017-11-28 16:52:23
红黑树 算法导论 C++ 模板实现
详细的红黑树C++模板实现,调试后运行正确。
template
class RBTree
{
private:
static node *nil;//哨兵,静态成员,被整个RBTree类所共有
node *root;
RBTree(const RBTree&);//禁止复制构造
RBTree operator=(const RBTree&);//禁止赋值
void leftRotate(node*);//左旋
void rightRotate(node*);//右旋
void insertFixup(node*);//插入节点后红黑性质调整
void eraseFixup(node*);//删除节点后红黑性质调整
public:
RBTree():root(nil)
{
root->parent = nil;
root->left = nil;
root->right = nil;
root->color = black;
}
RBTree(node *rbt):root(rbt){}//复制构造函数,用于创建子红黑树对象
void insert(const T&);//插入
void create();//创建红黑树
void erase(const T&);//删除
node* locate(const T&)const;//查找
node* minMum()const;//最小值
node* maxMum()const;//最大值
node* successor(const T&)const;//找后继
node* predecessor(const T&)const;//前驱
void preTraversal()const;//先根遍历
void inTraversal()const;//中根遍历
void destroy();//销毁红黑树
bool empty()const{return root == nil;}//判空
};