おそらくそれは非常に基本的で、誰もが私に向かって叫ぶでしょうが、私はそれを何時間も修正しようとしていて、もうそれを受け入れることができません。私はこの構造を持っています
struct node
{
Key_Type element;
tree_ptr left, right;
};
そして、私は次のようなstrdupを使用して要素に単語を入れようとしています:
newNode->element = strdup(word);
正規変数にポインタを割り当てようとしているため、おそらく機能していないことは理解していますが、それを修正する方法がわかりません。
Table insert(Key_Type word,Table root)
{
struct node *newNode = malloc(sizeof(struct node));
struct node *left = malloc(sizeof(struct node));
struct node *right = malloc(sizeof(struct node));
newNode = root->head;
//fprintf (stderr, "Hi\n");
while(newNode->element != NULL)
{
//printf("%s",word);
if(strcmp(word,newNode->element) == 0)
{
fprintf (stderr, "Hi\n");
return root;
}
while(strcmp(word,newNode->element) == -1)
{
//fprintf (stderr, "Hi\n");
newNode = newNode->left;
//fprintf (stderr, "Hi\n");
}//if
//fprintf (stderr, "Hi\n");
while(strcmp(word,newNode->element) == 1)
{
//fprintf (stderr, "Hi\n");
newNode = newNode->right;
//fprintf (stderr, "Hi\n");
}//else if
}
//createNode(word);
newNode->element = strdup(word);
newNode->left = left;
newNode->right = right;
//fprintf (stderr, "Hi\n");
//printf("%s",root->head->element);
return root;
}