だから、これはそのid
に基づいてツリー内のノードの簡単な検索のためのコードですノード:警告:コントロールは非void型関数の終わりに到達した[-Wreturn型] |私は機能の警告を取得し、私はので、私はその警告を取得することはできません関数を記述する方法がわからないもう
NodeT *searchNode(NodeT *parent, int id)
{
if(parent == NULL) printf("\nThere is no tree.");
if(parent->id == id)
return parent;
else
{
if(parent->left != NULL) searchNode(parent->left, id);
if(parent->right != NULL) searchNode(parent->right, id);
}
}
はまた、私はこれを取得しています次のように
ノードが定義されています。
typedef struct node_type
{
char id;
struct node_type *left, *right;
} NodeT;
は、私はその警告を取り除くことができます方法はありますか?
警告はきわめて明確です。 'parent-> id!= id'の場合、関数は何を返しますか?あなたが宣言した場合、関数は常に**何かを返さなければなりません。 – StoryTeller
[警告:制御は非void関数の終わりに達しますが、実際には関数はintとして宣言され、intを返します](http://stackoverflow.com/questions/10964528/warning-control-reaches-end)実際の機能はありません) – StoryTeller
ありがとうございます、あなたの答えは私の多くを助けました。もし私が 'if(parent-> left!= NULL)のsearchNode(parent-> left、id);を' return searchNode(parent-> left、id);を返すように置き換えると、プログラム警告なしで正常に機能します。 'if(parent-> right!= NULL)searchNode(parent-> right、id);'と同じです。 – ISimion