修改函数内的struct指针

时间:2013-11-10 15:17:01

标签: c pointers struct

我正在用C编写二进制搜索树的实现,这里是“插入”过程的一部分:

void insert(void *key, struct bst *tree) {
    void n = NULL;
    struct bst **y = &n;
    struct bst **x = &(tree->root);
    struct bst *node = init(key);
    int cmp;

    while (*x != NULL) {
            y = x;
            cmp = <compare  node and x's key>
            if (cmp > 0)
                    x = &((*x)->left);
            else
                    x = &((*x)->right);
    }

    if (y == NULL) /* Empty Tree */
            tree->root = node;
    cmp = <compare node and y's key>

    else if (cmp > 0)
            (*y)->left = node;
    else
            (*y)->right = node;

我正在使用双结构指针(x和y)以便对原始树进行更改。是否需要双指针,或者我可以通过简单的指针指向树本身吗?

编辑:在评论中得到答案,我不需要指点。

0 个答案:

没有答案