前缀树的设计与实现

前缀树是一种数据结构,用于利用字符串的公共前缀提高查询效率。在搜索引擎中,输入部分词汇就能快速匹配相关词汇,这就是前缀树的应用。通过构建前缀树,可以方便地解决查询特定前缀的字符串、判断字符串是否存在以及添加和删除元素等问题。文章还提供了基于Hash表和优化后的26字母结构的前缀树实现,并给出了LeetCode的相关题目链接。
摘要由CSDN通过智能技术生成

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

前缀树的设计与实现

作者:Grey

原文地址:

博客园:前缀树的设计与实现

CSDN:前缀树的设计与实现

前缀树即字典树,可以利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。

我们使用搜索引擎的时候,输入 test,后面会自动显示一堆前缀是 test 的东西。这就利用了前缀树结构来实现。

比如我们有一堆字符串

["Trie","apple", "insert","apple", "search", "app","search", "startsWith", "insert", "search"]

问题1.查询字符串列表里面是否有以appapx为前缀的字符串。

问题2.查询字符串列表里面有没有insertserac这两个字符串。

我们可以把字符串列表构造成一棵前缀树,如下图

image

头节点是空串,路径表示字符,节点表示一个字符串的前缀(简称 p 节点),黑色节点表示一个字符串的结尾位置(简称 e 节点)。

有了如上结构,针对问题1,判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值