我一直在努力完成CS50课程中的Trie练习题.我编写的check函数必须判断是否在main函数中创建的trie中找到了用户输入.
bool check(char* word)
{
node *temp = malloc(sizeof(node));
temp = root;
for (int i = 0; i < strlen(word); i++){
int ix = tolower(name[i]) - 'a';
if (ix < 0 || ix => SIZE_OF_ALPHABET){
return false;
}
if (temp->children[ix] == NULL && temp->is_word == false){
return false;
}
temp = temp->children[ix];
}
return true;
}
程序编译和运行得很好,但是,每当我故意输入一个不应该被找到的无效名称时,程序仍然输出已经找到该名称,这应该不会发生.有没有人能解释一下我的错误是什么?先谢谢你.