基本前缀树实现问题

| 我已经实现了基本的前缀树或\“ trie \”。特里由以下节点组成:
// pseudo-code
struct node {
    char c;
    collection<node> childnodes;
};
假设我在Trie中添加了以下单词:\“ Apple \”,\“ Ark \”和\“ Cat \”。现在,当我查找诸如\“ Ap \”和\“ Ca \”之类的前缀时,我的trie \\“ bool containsPrefix(string prefix)\”方法将正确返回true。 现在,我正在实现方法“ bool containsWholeWord(string word)\”,该方法将对\“ Cat \”和\“ Ark \”返回true,但对\“ App \”返回false(在上面的示例中)。 特里树中的节点是否具有某种\“ endOfWord \”标志是否常见?这将有助于确定所查找的字符串是否实际上是输入到trie中的整个单词,而不仅仅是前缀。 干杯!     
已邀请:
        如果您需要同时存储\“ App \”和\“ Apple \”,而不是\“ Appl \”,那么是的,您需要存储
endOfWord
标志。 或者,您可以(有时)通过使两个节点具有相同的字符来使其适合您的设计。因此\“ Ap \”必须具有子节点:叶节点\“ p \”和具有子\“ l \”的内部节点\“ p \”。     
        密钥的结尾通常通过叶节点指示。要么: 子节点为空;要么 您有一个分支,带有一个键的前缀和一些子节点。 您的设计没有叶/空节点。尝试用例如空值。     

要回复问题请先登录注册