gpt4 book ai didi

对使用指针访问二叉树节点的内容感到困惑

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

如果我有一个看起来像这样的结构:

struct node
{
int key_value;
struct node *left;
struct node *right;
};

我有一个如下所示的搜索功能:

struct node *search(int key, struct node *leaf)
{
if( leaf != 0 )
{
if(key==leaf->key_value)
{
return leaf;
}
else if(key<leaf->key_value)
{
return search(key, leaf->left);
}
else
{
return search(key, leaf->right);
}
}
else return 0;
}

为什么在搜索函数中,当将值与叶子进行比较时,而不是:

key < (*leaf)->key_value

完成key < leaf->key_value

leaf 不是指针吗?所以我们首先需要取消引用指针然后访问值?

那么,我们是给函数传递一个地址,我们应该先获取指向该地址的内容,然后再获取值(key_value)对不对?

最佳答案

指针正在取消引用。 leaf->key_value 等同于 (*leaf).key_value。箭头运算符意味着取消引用指针。

关于对使用指针访问二叉树节点的内容感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14874029/

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