1

完全なコード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);
}
4

2 に答える 2