ABC23 发表于 2018-2-19 19:22:52

【关于递归调用的疑问】

最近重温《数据结构与算法分析(C语言描述)》,书中P88页关于AVL树的插入算法有部分看不懂。部分代码如下(如果有书的话,在88页)
...
if(X > T->data)
{
        T->right = Insert(X, T->right);
        if(Height(T->right) - Height(T->left) == 2)
        {
                if(X > T->right->data)
                {
                        T = SingleRotateWithRight(T);
                }
                else{
                        T = DoubleRotateWithRight(T);
                }
}

T->height = Max(Height(T->left), Height(T->right)) + 1;
return T;
}

其中,T->right = Insert(X, T->right),这里既然T是指针,那么每次递归时不都会覆盖原来的(插入前)树的元素吗(我是说左值。)?
页: [1]
查看完整版本: 【关于递归调用的疑问】