🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
1|001Trie
1|1Section 1:普通 Trie
1|0Section 1.1 什么是 Trie
Trie 树,即字典树,是一种树形结构。典型应用是用于统计和排序大量的字符串前缀来减少查询时间,最大限度地减少无谓的字符串比较。
1|0Section 1.2 如何实现
具体地说,对于每个结点,我们要保存几个信息:
ch[26]
,保存此字符的下一个字符(a∼za∼za\sim z)的存储地址(没有为 000)。cnt
,保存此节点被经过了多少次。
对于整个 Trie 树,我们还要额外保存
Tcnt
,为节点数。Endp[]
,表示的是这个字符串是否以这个下标结尾(如果只是看是否是前缀,则不需要此数组)。
1|0几个操作
insert
:往 Trie 树里插入一个字符串。
具体实现:把字符串里的字符扫描一遍,设当前字符为 sss,如果 ch[s-'a']
不等于 000,跳转到 ch[s-'a']
的存储下标。否则把 ch[s-'a']
设为树的节点数加一,然后跳转。跳转时把当前节点的 cntcntc