伸展树的删除例程

来源:互联网 发布:泽诺尼亚s下载最新数据 编辑:程序博客网 时间:2024/06/05 03:42

摘要:对要访问的节点进行访问这样会把该节点退到根处,删除根后得到两个子树.如果访问TL的最大节点,则该树变成一个没有右儿子的树,将TR接在TL上即可.

Position Delete(Position T,int X){    Position TL,TR;    if (T == NULL)    {        puts("error : X does not exist in the tree");        exit(-1);    }    T = FindOperation(T,X);    if (T->Left == NULL)    {        TL = T->Right;        free(T);    }    else    {    TL = T->Left;    TR = T->Right;    TL = FindOperation(TL,FindMax(TL));    TL->Right = TR;    free(T);    }    return TL;}
0 0
原创粉丝点击