当前位置: 首页 > news >正文

别人做的网站自己想更新山东建站管理系统

别人做的网站自己想更新,山东建站管理系统,沈阳网站建设简维,给别人做违法网站介绍Trie树 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 前缀树也有一些其它的名称:字典…

介绍Trie树

Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。

前缀树也有一些其它的名称:字典树,前缀树,单词查找树等。

Trie树是一颗非典型的多叉树模型。

一般的多叉树,它们的结点通常主要包含了:

1.该结点的值

2.它的下一个孩子的指针

假设我们要查找的字符的范围是 [a,z],也就是26的大小,

那么每一个前缀树的结点主要就包含以下两个值:

bool isEnd;
Trie* next[26];

第一个是一个bool值,它用来表示这个字符串是否到了结尾。

第二个值就是一个前缀树结点的指针的数组,它的大小刚好是26,那么这个结点的下一个孩子的指针数组下标就可以表示一个字符,而却并没有直接保存字符,这就是Trie树的巧妙之处。

比如,用如下的示意图可以表示字符串 aa aba :

其它空指针就没有画出来了。并且它也可以表示字符串a ab,只要在对应的结点将isEnd改为true,表示它是一个字符串的末尾即可。 

 

Trie树的简单实现

在力扣上有一道题:

 

这道题的大致意思就是让我们实现一个简单的前缀树,这个前缀树可以进行插入,查找,以及判断一个字符串是否是某个字符串的前缀。

代码:

class Trie {bool isEnd;Trie* next[26];
public:Trie() {isEnd = false;memset(next,0,sizeof(next));}void insert(string word) {Trie* cur = this; // 用来迭代for(auto ch : word){if(cur->next[ch - 'a'] == nullptr) cur->next[ch - 'a'] = new Trie();cur = cur->next[ch - 'a'];}cur->isEnd = true;}bool search(string word) {Trie* cur = this;for(auto ch : word){if(cur->next[ch - 'a'] == nullptr) return false;cur = cur->next[ch - 'a'];}return cur->isEnd;}bool startsWith(string prefix) {Trie* cur = this;for(auto ch : prefix){if(cur->next[ch - 'a'] == nullptr) return false;cur = cur->next[ch - 'a'];}return true;}
};

 这里的实现其实将结点和函数的实现放在一起了,也可以将结点在类外面进行封装。

Trie树小总结: 

Trie 的形状和单词的插入或删除顺序无关,也就是说对于任意给定的一组单词,Trie 的形状都是唯一的。

查找或插入一个长度为 L 的单词,访问 next 数组的次数最多为 L+1,和 Trie 中包含多少个单词无关。

Trie 的每个结点中都保留着一个字母表,这是很耗费空间的。如果 Trie 的高度为 n,字母表的大小为 m,最坏的情况是 Trie 中还不存在前缀相同的单词,那空间复杂度就为 O(m * n)。

 关于Trie树的应用场景:一次建树,多次查询

http://www.wangmingla.cn/news/31299.html

相关文章:

  • 包头网站优化郑州网络推广服务
  • 网站建设在哪里接单全国疫情实时资讯
  • 自适应型网站建设多少钱短视频推广平台有哪些
  • 找别人做网站需要注意什么企拓客app骗局
  • 建网站的基本流程千锋教育培训机构学费
  • 新网站建设流程图关键字挖掘机爱站网
  • 泰州网站建设托管他达拉非片正确服用方法
  • 网站建设吸引客户的seo快速排名网站优化
  • 杭州企业网站建设公司镇江seo快速排名
  • 网站建设有哪些项目营销策划方案ppt
  • asp.net个人网站怎么做手机网站排名优化软件
  • 哈尔滨php网站开发公司怎么自己做网址
  • 网站功能模块什么意思seo关键词优化推广哪家好
  • 在公司做网站是什么职位360搜索推广官网
  • 百度流量推广seo基础入门
  • 花都网站建设公司360seo排名点击软件
  • 网站地图可以自己做么惠城网站设计
  • 城乡住房建设网站如何打百度人工电话
  • 1688网站简介my63777免费域名查询2023年
  • 图书馆门户网站建设会议记录淘宝优化关键词的步骤
  • 南昌网站建设公务谷歌怎么投放广告
  • 网站建设仟金手指专业15优化关键词步骤
  • 贵州省网站集约化建设谷歌seo推广培训班
  • 政府网站静态模板十大营销模式
  • 服务器重启后网站打不开网络营销做得好的酒店
  • 先做公众号在做网站湖北seo关键词排名优化软件
  • 学校网站建设电话佛山今日头条
  • 浙江建设证书查询seo网站内部优化
  • 厦门网站建设公司怎么选日本积分榜最新排名
  • 有没有教做零食的网站百度一下百度网页官