字典树【Trie】
字典树【Trie】
一种能够快速插入和查询字符串的多叉树结构
节点的编号各不相同,根节点编号为0,其它节点用来标识路径,还可以标记单词插入的次数。边标识字符
Tier维护字符串的集合,支持2种操作:
- 向集合中拆入一个字符串, void insert(char c)
- 向集合中查询一个字符串,int query(char c)
建字典树
儿子数组 cha[p][j]:存储从节点 p 沿着 j 这条边走到的子节点
- 边为26个小写字母(a-z)对应的映射值为:0 - 25
- 每个节点最多可以有 26 个分叉
例如:ch[0][2] = 1,ch[1][0] = 2,ch[2][19] = 3
计数数组 cnt[p] 存储以节点 p 结尾的单词的插入次数
节点编号 index:用来给节点编号
注意事项
- 空 Trie 仅有一个 root 节点,编号为 0
- 从 root 节点开始插,枚举字符串的每个字符
- 如果有儿子,则 p 指针走到儿子
- 如果没有,则先创建儿子,p 指针再走到儿子
- 在单词结束点记录插入次数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix