在這裏,我已經寫了這將插入數字二叉樹代碼。但它給分段錯誤錯誤。 並且還寫着「注意:預期‘結構樹*’,但參數的類型爲‘結構節點*’」,在第8行 下面是代碼: -二叉樹分割故障
#include<stdio.h>
#include<stdlib.h>
struct tree{
int data;
struct tree *left;
struct tree *right;
};
struct tree* insert(struct tree* node, int data)
{
if(!node){
node=malloc(sizeof(struct tree));
node->data=data;
node->left=node->right=NULL;
return node;
}
else {
if(data>node->data){
node->right= insert(node->right,data);
return node;
}
else{
node->left= insert(node->left,data);
}
return node;
}
}
printtree(struct tree* node)
{
if(node){
printf("%d",node->data);
}
printtree(node->left);
printtree(node->right);
}
main()
{
int i,n;
struct tree *NODE;
NODE= insert(NODE,5);
NODE= insert(NODE,3);
NODE= insert(NODE,8);
printtree(NODE);
}
凡被定義'結構node'? – Kninnug
嘗試使用警告進行編譯,以查看可以立即修復的錯誤。 – Nobilis
錯誤太多。作爲佈雷特·黑爾指出,'結構樹* node'將不會被初始化,'結構樹* treenode'沒有任何地方使用,而且我也相信,在結構定義,既'結構node'應該是'結構tree' –