1
我需要將字符串插入到二叉搜索樹中,但每個遍歷插入函數都會更新所有節點,而不僅僅是適當的。 它要求放置在二叉搜索樹中的每個單詞具有爲其分配的確切內存量(空指針+1)。將字符串插入二進制搜索樹C
這裏是正在使用的結構:
typedef struct node_t{
char *word;
struct node_t *left, *right;
} node_t;
以下是我想過去的話:
for(i=0; i< original_words -1; i++)
{
fscanf(ifp, "%s", y);
head = insert(head, y);
}
這是我的插入功能:
node_t *insert(struct node_t *head, char *word)
{
if(strcmp(head->word, word) > 0)
{
if(head->left == NULL)
{
head->left = create_node(word);
}
else
{
head->left = insert(head->left, word);
}
}
else
{
if(head->right == NULL)
{
head->right = create_node(word);
}
else
{
head->right = insert(head->right, word);
}
}
return head;
}
編輯:這裏有一個輸入文件的例子。
4
-------
bravo
-------
alpha
-------
gamma
-------
delta
當strcmp(head-> word,word)== 0'時會發生什麼?你應該專門處理這種情況... – 2013-04-10 20:04:38
今天有東西插入到BST中。我向上帝發誓我今天看到了5個類似的問題。在某所大學是不是BST的一天? – 2013-04-10 20:04:51
@VladLazarenko你可能是正確的這一個。 – 2013-04-10 20:12:00