红黑树插入删除

红黑树结构体

template<class A>
class rbTree
{
    class rbTreeNode
    {
        size_t key;
        bool color;
        rbTreeNode * parent , * left , * right;
        A data;
    }
}

$插入的新节点默认红色

$空节点默认黑节点

template<class A>
class rbTree
{
    void push(A a)
    {
        new rbTreeNode;
    }
}

$首节点是黑节点

如果插入的节点没有父节点,说明是首节点,

将默认的红色换成黑色

if(getParent() == NULL)
{
    setColor(black);
}

$父节点是 红色 则需要调整

$父节点是 黑色 则不需要处理

调整根据叔叔节点颜色,进行不同操作


1

if(getGrand())
{
    if(getGrand())
}








你可能感兴趣的:(数据结构,二叉树,红黑树,RBTree,2-3树)