我正在用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)以便对原始树进行更改。是否需要双指针,或者我可以通过简单的指针指向树本身吗?
编辑:在评论中得到答案,我不需要指点。