1

バイナリ ツリーで一致するものを検索しているときに、セグメンテーション エラーが発生します。一致が見つかった場合はセグメンテーション違反は発生しませんが、何も見つからない場合は正しく終了していません。誰かが私を正しい方向に向けることができますか? 私は何を間違っていますか。

void search() {
    char temp,temp1[15];
    struct node *s=root;
    int i=0;

    do{
        printf("Enter Name To Be Searched\n");
        scanf("%s",temp1);
        getchar();
        i=0;
        s=root;
        while(s!=NULL && i==0){
            if(strcmp(s->data,temp1)< 0)
                s=s->right;
            if(strcmp(s->data,temp1)>0)
                s=s->left;
            if(strcmp(s->data,temp1)==0)
                i=1;
        }
        if(i==0)
            printf("Element Not Found\n");
        else
            printf("Element Found\n");
        printf("Enter More Elements[Y/N]:\n");
        temp=getchar();
        printf("%c", temp);
    }while(temp=='y');
}
4

2 に答える 2

0

子ノードがない場合、おそらく子ノード ポインターは null ではありません

于 2013-11-08T18:54:42.300 に答える