私は文字列を挿入し、トライデータ構造を使用して検索を行います。これはポインタを使用した私の最初の実装で、コードで間違っていると混乱します。それをデバッグするのに役立ちますし、私のポインタロジックで何が間違っているか教えてください。Trieツリーを実行中にエラーが発生しました
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)今後の読者にはこれを良い質問にするためにエラーを投稿することになっています。 b)コードは完全な最小例ではありません。 – drescherjm