Почему эта реализация добавления в бор работает :
void insert(string word) {
node *cnt = root;
for (int i = 0; i < int(word.size()); i++) {
char ch = word[i];
if (cnt -> next[ch - 'a'] == nullptr) {
cnt -> next[ch - 'a'] = new node();
}
cnt = cnt -> next[ch - 'a'];
}
cnt -> num += 1;
}
А эта не работает :
void insert(string word) {
node *cnt = root;
for (int i = 0; i < int(word.size()); i++) {
char ch = word[i];
cnt = cnt -> next[ch - 'a'];
if (cnt == nullptr) {
cnt = new node();
}
}
cnt -> num += 1;
}
Потому что при создании новой вершины, в нее не будет ссылки из родителя.