ironsoul's blog

By ironsoul, history, 8 years ago, In Russian

Почему эта реализация добавления в бор работает :

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;
}
  • Vote: I like it
  • -5
  • Vote: I do not like it