插入三元搜索树中的分段错误

时间:2012-12-16 14:43:53

标签: c search data-structures segmentation-fault ternary-search-tree

我正在尝试将charachter插入到三元搜索树中,请帮我解决这个分段错误? 这是我正在做什么来进行trie,在运行这个我得到分段错误(核心转储)  请帮帮我,为什么会这样呢?

int main(int argc ,char* agrv[])
{
TSTNode *root;
char *str;
cin >> str;
InsertTST(root,str);
DisplayTST(root);
return 0; 
}

TSTNode* InsertTST(TSTNode *root, char *str)
{
if(root== NULL){
    TSTNode *root = (TSTNode *)malloc(sizeof(TSTNode *));
    root->left = NULL;
    root->right = NULL;
    root->eq = NULL;
    root->is_end_of_str = 0;

    return root;
}


if(root->data < *str)
    InsertTST(root->right, str);
else if (root->data == *str){
    if(*(str+1) != '\0')
    InsertTST(root->eq, str+1);
    else 
    root->is_end_of_str = 1;
}
else 
    InsertTST(root->left, str);

return root;
}

1 个答案:

答案 0 :(得分:2)

char *str;
cin >> str;

没有内存分配,然后写入所述内存= seg fault。