完全なコードhttp://pastebin.com/6bdVTyPt
私のツリー コードは完全に機能していましたが、ID がテキストではないことを検証する必要があることが判明したため、文字列挿入関数である必要がありました。 (atoi) 整数として比較すると、何の助けに
も
なり
ません
struct node * insert2(struct node *root, char x[],char id[])
{
if(!root)
{
root=(struct node*)malloc(sizeof(struct node));
free( root->data );
free( root->id );// free previously allocated memory, if any
root->data = strdup( x ); // malloc and copy
root->id=strdup(id);
root->left = NULL;
root->right = NULL;
// printf("1\n");
return(root);
}
printf("string comp %d of %s of %s\n",strcmp(root->id,id),root->id,id);
if((strcmp(root->id,id))>0){
root->left = insert(root->left,x,id);
printf("go left\n");
}
else
{
if(strcmp(root->id,id)<0){
printf("go right\n");
root->right = insert(root->right,x,id);}
}
return(root);
}