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

wordpress类似网站模板网站设计公司模板

wordpress类似网站模板,网站设计公司模板,公司注册网上核名几个字,一家专门做衣服的网站介绍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.hkea.cn/news/884977/

相关文章:

  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化
  • 问信息奥赛题怎么做 去哪个网站互联网网络推广
  • b2c电子商务网站系统下载专业网站seo推广
  • 引流推广的方法seo诊断工具
  • 平阴县建设工程网站直通车推广怎么做
  • 网站开发外包不给ftp高佣金app软件推广平台
  • 太原适合网站设计地址百度用户服务中心客服电话
  • 济南源码网站建设长沙网站seo推广公司
  • 北京网站制作17页和业务多一样的平台
  • 无锡市住房城乡建设委网站简单网页设计模板html
  • 武汉市大型的网站制作公司网站ip查询
  • 做仪表行业推广有哪些网站电商网站设计
  • 动静分离网站架构百度售后客服电话24小时
  • 做汽车配件生意的网站佛山seo关键词排名
  • 创意建站推荐百度做广告多少钱一天
  • 巴中网站建设公司百度seo怎么做网站内容优化
  • 查网站备案名称上海网络营销seo
  • 人是用什么做的视频网站网络营销方案设计毕业设计
  • 建设网站考虑因素关键词优化是怎么弄的
  • 陕西营销型网站建设推广普通话的内容简短