首页
学习
活动
专区
圈层
工具
发布

插入Trie
EN

Stack Overflow用户
提问于 2012-10-19 04:15:54
回答 2查看 1K关注 0票数 0

我正在尝试为trie结构实现一个插入函数,这是我的struct

代码语言:javascript
复制
struct Trie {
  bool isWord;
  char letter;
  Trie *letters[27];
  Trie() {
    isWord = false;
    for ( int i = 0; i < NumChars; i += 1 ) {
      letters[i] = NULL;
    }
  }
}; 

这就是我尝试过的插入函数

代码语言:javascript
复制
void insertin( Trie &node, const std::string &word )
  {
    int i = 0;
    while (word[i] != '\0'){
      int c = word[i] - 'a';
      node.letters[c]->letter = word[i];
      node = node.letters[c];
      i++;
    }
    node.isWord = true;
  }

当我设置"="运算符时,不能使用"="来分配相同的类型吗?还是我得让它超负荷。还有一个候选错误,任何建议或调试帮助都会有帮助!这也是我的完整程序http://ideone.com/MqcBo

EN

回答 2

Stack Overflow用户

发布于 2012-10-19 12:57:49

节点类型为"Trie",node.lettersc为"Trie*“类型。尝试节点= *(node.lettersc) --但是要确保node.letterc不是NULL。

票数 1
EN

Stack Overflow用户

发布于 2012-10-19 04:19:43

我不认为您只希望将节点设置为要插入的项。我不清楚节点到底是什么,不管是列表、字典还是其他什么。如果它是一个字典(这是实现尝试的一种方法),那么显然您需要更新键值对,而不是仅仅替换条目。如果它是一个列表,您可能希望追加该条目,而不是替换它。

编辑:而且,似乎你从来没有在节点上创建新的尝试,只是在顶层有27次尝试的数组,当你得到一层深度时会发生什么呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12967309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档