TrieNode 类
Coddy 字典树:数据结构系列第 8 课 课程的第 3 课,共 14 课。
字典树中的每个节点都是一个小对象,它包含两部分信息:它连接的子节点(从字符映射到下一个节点的映射),以及一个标记 isEndOfWord 的标志,用来表示从根节点到此节点的路径是否拼出了一个完整的已插入单词。
这就是整个类。没有值,也没有键:节点在树中的位置就是它的含义。从根节点沿着标记为 c、a、t 的边走到的节点,就是插入 "cat" 时我们将 isEndOfWord = true 设为 true 的节点。
先来构建这个 TrieNode 类,下一课中的 Trie 类会用到它。
挑战
简单编写一个类 TrieNode,并定义一个不接收任何输入的构造函数。
初始化两个字段:
- 将
children设置为空映射(或使用你的语言中表示字符到节点映射的等效结构)。 - 将
isEndOfWord设置为 false。
亲手试试
#include <stdio.h>
#include "trienode.h"
int main() {
TrieNode* n = TrieNode_new();
printf("%s %s\n",
TrieNode_childrenCount(n) == 0 ? "true" : "false",
n->isEndOfWord ? "true" : "false");
return 0;
}
字典树:数据结构系列第 8 课中的所有课
自己练习: C 在线编译器