本文整理汇总了C++中TrieNode::addChild方法的典型用法代码示例。如果您正苦于以下问题:C++ TrieNode::addChild方法的具体用法?C++ TrieNode::addChild怎么用?C++ TrieNode::addChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TrieNode
的用法示例。
在下文中一共展示了TrieNode::addChild方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: insert
void Trie::insert(string s) {
TrieNode* curr = root;
for(int i=0; i<s.length(); i++){
if(curr->inChildren(s[i])) curr = curr->getChild(s[i]);
else curr=curr->addChild(s[i]);
}
curr->addChild('#');
}
示例2: insert
// Inserts a word into the trie.
void insert(string s)
{
if (s.empty())
return;
TrieNode* p = root;
int i = 0;
while (i < s.size())
{
TrieNode* tmp = p->findCh(s[i]);
if (nullptr == tmp)
{
p->addChild(s[i]);
++i;
p = p->getLastChild();
}
else
{
++i;
p = tmp;
}
}
p->isAWord(true);
return;
}
示例3: insert
// Inserts a word into the trie.
void insert(string s) {
if (s.size() == 0) return;
TrieNode* node = root;
TrieNode* current = NULL;
int i = 0;
for (; i < s.size(); i++){
current = node->dic[s[i] - 'a'];
if (!current){
break;
}
node = current;
}
for (; i < s.size(); i++){
TrieNode* tmp = new TrieNode();
node->addChild(s[i] - 'a', tmp);
node = tmp;
}
node->isWord = true;
}