字典树知识梳理

字典树

字典树的介绍

字典树又名前缀树,是一种用树形结构实现的数据结构,可以高效地存储和检索集合中的数据
优点:
利用数据的公共前缀来减少查询时间,最大限度地减少无谓的比较
缺点:
字典树的核心思想是以空间换时间(有的时候可能会爆哦),数组要开a[最大能储存的结点数目][字符集大小(如26个小写字母就要开26)]
主要操作有插入和询问

字典树的性质

1.根节点不包含数据,除根节点以外的每个节点包含且只包含一个数据
2.数据是以边权的形式储存的

字典树的储存

看来上面的图,想必就会有读者问,1,2,6,11这几个结点中我是该取,a,ab,aba还是ba这类似的问题
俗话说办法总比困难多
于是某位大佬就相处在每个单词的结尾处做标记这个办法

这样我们就知道树里面存的是aa,aba,ba,caa,caaa,cab,cba,cc,而不是其它的

实现

我们用两个数组
来记录每个单词的终结点
一个来记录字典树

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a 2 5 7 8 11 12 14 15
b 3 6 9 13
c 4 10

来记录每个单词的终结点

代码

插入
void insert(char *s, int l) {  // 插入字符串
	int p = 0;
	for (int i = 0; i < l; i ++) {
		int c = s[i] - 'a';
		if (!nex[p][c]) nex[p][c] = ++ cnt;  // 如果没有,就添加结点
		p = nex[p][c];
	}
	exist[p] = 1;//记录终结点
}
询问
bool find(char *s, int l) {  // 询问字符串
	int p = 0;
	for (int i = 0; i < l; i++) {
		int c = s[i] - 'a';
		if (!nex[p][c]) return 0;
		p = nex[p][c];
	}
	return exist[p];//返回终结点
}

学到这里我们来看一下前缀统计
没看懂的朋友看这里

完结撒花

欢迎大家留言
小编蒟蒻一个,有什么问题请大佬不惜赐教Orz

posted @   骆美辰  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
  1. 1 淋雨一直走 张韶涵
  2. 2 一期一会《未闻花名》(Cover 茅野愛衣,戸松遥,早見沙織) 周深
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
起风了 - 吴青峰
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 米果

作曲 : 高橋優

编曲 : 刘胡轶/貢多杰

制作人 : 刘胡轶/吴青峰

配唱制作人 : 刘胡轶

乐器监制 : 刘胡轶

吉他 : 胡晨

贝斯 : 甯子达

弦乐录音棚 : 中国剧院录音棚

录音工程师 : 倪涵文/李游/李杨/邢铜/韩宽/李巍

录音监制 : 倪涵文/李游

混音&母带工作室 : OKmastering studio

混音&母带工程师 : 全相彦

制作协力 : 刘西洋

制作发行 : 智慧大狗 × 天才联盟

出品人 : 张葛

监制 : 崔恕/王明宇

弦乐监制 : 李朋

弦乐 : 国际首席爱乐乐团

鼓(打击乐):祁大为

和音编写&演唱:鱼椒盐

人声&吉他&鼓(打击乐)录音棚:55Tec studio

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

这一路上走走停停

这一路上走走停停

顺着少年漂流的痕迹

迈出车站的前一刻

竟有些犹豫

不禁笑这近乡情怯

不禁笑这近乡情怯

仍无可避免

而长野的天

依旧那么暖

风吹起了从前

从前初识这世间

从前初识这世间

万般流连

看着天边似在眼前

也甘愿赴汤蹈火去走它一遍

如今走过这世间

如今走过这世间

万般流连

翻过岁月不同侧脸

措不及防闯入你的笑颜

我曾难自拔于世界之大

我曾难自拔于世界之大

也沉溺于其中梦话

不得真假 不做挣扎 不惧笑话

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

逆着光行走 任风吹雨打

短短的路走走停停

短短的路走走停停

也有了几分的距离

不知抚摸的是故事 还是段心情

也许期待的不过是 与时间为敌

再次看到你

微凉晨光里

笑得很甜蜜

从前初识这世间

从前初识这世间

万般流连

看着天边似在眼前

也甘愿赴汤蹈火去走它一遍

如今走过这世间

如今走过这世间

万般流连

翻过岁月不同侧脸

措不及防闯入你的笑颜

我曾难自拔于世界之大

我曾难自拔于世界之大

也沉溺于其中梦话

不得真假 不做挣扎 不惧笑话

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

晚风吹起你鬓间的白发

晚风吹起你鬓间的白发

抚平回忆留下的疤

你的眼中 明暗交杂 一笑生花

我仍感叹于世界之大

我仍感叹于世界之大

也沉醉于儿时情话

不剩真假 不做挣扎 无谓笑话

我终将青春还给了她

连同指尖弹出的盛夏

心之所动 就随风去了

以爱之名 你还愿意吗

lock: { enable: true, background: 'https://img1.baidu.com/it/u=2788089125,168843488&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1690563600&t=35fa4326e773b3fbf83562ad746b7cd2',//锁屏背景 strings: [ 'Every win named never give up 每一份胜利都叫不放弃',//签名 ], },
点击右上角即可分享
微信分享提示