前缀树 Trie:补全、路由与词频

按字符分层的树,让「公共前缀」变成共享路径——补全与字典类问题很吃这套。

Trie 每个节点代表一个字符(或一段),从根到某节点的路径即前缀。插入与查询与键长相关,通常 O(L)。

节点形态

type Node struct {
    next [26]*Node // 或 map[rune]*Node
    end  bool
    // freq int // 可选:词频 / 热度
}

能做什么

  • 自动补全:走到前缀节点后 DFS/BFS 收集词。
  • 敏感词 / 字典匹配的基础形态。
  • 某些路由树、IP 前缀场景的教学模型。

代价

节点多时内存开销明显;字母表大时用 map;压缩路径可用 Radix Tree。工程前先估基数。

小结

键空间有大量共享前缀时,Trie 自然。先实现正确的插入与前缀遍历,再加压缩与缓存。