次のような構造体がある場合:
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
ポインターを残しませんか?したがって、最初にポインタを逆参照してから、値にアクセスする必要がありますか?
したがって、関数にアドレスを渡します。最初にそのアドレスを指すコンテンツを取得してから、値(key_value)を取得する必要がありますか?