Я хочу вставить строку и выполнить поиск opeartion с помощью структуры данных trie. Это моя первая реализация с использованием указателей, поэтому я действительно смущен тем, что я делаю неправильно в коде, Это дает ошибку компиляции. пожалуйста, помогите отладить его и, пожалуйста, скажите мне, что не так в моей логике указателя.Ошибка выполнения Trie Tree
typedef struct trie {
unordered_multimap<char, struct trie> child;
bool isEnd;
} trie;
trie* newtrienode()
{
trie* newnode = (trie*)malloc(sizeof(trie));
newnode->isEnd = false;
return newnode;
}
trie* root = newtrienode();
void insert(string word)
{
trie* current = root;
for (int i = 0; i < word.length(); i++) {
char ch = word[i];
trie* node = current->child[ch];
if (node == NULL) {
trie* node = newtrienode();
current->child.insert(pair<char, trie>(ch, node));
}
current = node;
}
current->isEnd = true;
}
bool search(string word)
{
trie* current = root;
for (int i = 0; i < word.length(); i++) {
char ch = word[i];
trie* node = current->child[ch];
if (node == NULL) {
return false;
}
current = node;
}
return true;
}
Что такое ошибка компиляции? – Sabuncu
@Sabuncu было бы лучше, если и скомпилировать его и увидеть, потому что это длинный поток ошибок. Возможно, ошибка здесь затруднит чтение. Надеюсь, вы поймете. – query
a) вы должны опубликовать ошибки, чтобы сделать этот вопрос хорошим для будущих читателей. б) код не является полным минимальным примером. – drescherjm