gpt4 book ai didi

c - 二叉搜索树insert方法返回指向节点的指针

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:25 25 4
gpt4 key购买 nike

我想知道为什么在BST的insert函数中要返回指向根节点的指针。即使我们不返回指向根节点的指针,BST 也不会更新吗,因为我们正在更新指针映射到的内存中的数据?以下代码

struct node* insert(struct node* node, int data) 
{
/* 1. If the tree is empty, return a new, single node */
if (node == NULL)
return(newNode(data));

/* 2. Otherwise, recurse down the tree */
else
{
if (data <= node->data)
node->left = insert(node->left, data);
else
node->right = insert(node->right, data);

/* return the (unchanged) node pointer */
return node;
}
}

最佳答案

在调用者传入空树(空指针)的情况下,此函数必须返回指向树的指针,以便调用者现在拥有一棵非空树。在树非空的情况下,函数递归并在某个点返回一个新的子树。如果根节点没有改变,您可以编写此代码的一个版本,它返回 NULL(或其他一些值),但这会使代码更复杂。这是最简单的方法。

关于c - 二叉搜索树insert方法返回指向节点的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25098807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com