1
所以這是一個簡單搜索樹中的節點的代碼基於該id
節點:我得到一個函數的警告,我不知道如何編寫函數,所以我不會再得到這個警告
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);
}
}
而且我得到這樣的:警告:控制到達非void函數[-Wreturn型]的結束|
節點的定義如下:
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);'with'return searchNode(parent-> left,id);'那麼程序將正常運作,沒有任何警告。下一行也一樣:'if(parent-> right!= NULL)searchNode(parent-> right,id);'。 – ISimion