У меня уже есть дерево двоичного поиска, и каждый узел содержит имя человека. Я хотел бы сделать al oop в основном, что позволяет мне искать, находится ли введенное мной имя в BST. Я написал эту функцию:
int find(Node* root, char* search) {
if (root != NULL) {
if(strcmp((root->name), search) == 0)
return 1;
if (strcmp(root->name, search) < 0)
return find(root->left, search);
else
return find(root->right, search);
}
else
return 0;
}
Мое намерение - вернуть 1, если найдено, вернуть 0 в противном случае. Моя основная функция имеет это l oop:
char choice[30];
while(1){
printf("Enter a word to search: ");
scanf("%s", choice);
int result = find(root, choice);
if(result == 1){
printf("Found.");
}
else{
printf("Not found.");
}
printf("\n");
}
По какой-то причине он работает (печатает «Найдено») только для первого имени в моем BST (root). Любая помощь будет оценена!