首页 > 其他 > 详细

字典树模版

时间:2014-04-09 18:28:29      阅读:295      评论:0      收藏:0      [点我收藏+]

数组版 来自大白书

int ch[maxnode][sigma_size];
int val[maxnode];
int sz;
void init()
{
	sz = 1;
	memset(ch[0], 0, sizeof(ch[0]));
}
int idx(char c)
{
	return c - ‘a‘;
}

void insert(char *s)
{
	int u = 0, n = strlen(s);
	for(int i = 0; i < n; i++)
	{
		int c = idx(s[i]);
		if(!ch[u][c])
		{
			memset(ch[sz], 0, sizeof(ch[sz]));
			val[sz] = 0;
			ch[u][c] = sz++;
		}
		u = ch[u][c];
	}
	val[u] = 1;
}
void find(char *s)
{
	int u = 0, n = strlen(s);
	for(int i = 0; i < n; i++)
	{
		printf("%c", s[i]);
		int c = idx(s[i]);
		u = ch[u][c];
		if(val[u] == 1)
			break;
		
	}
}


 

字典树模版,布布扣,bubuko.com

字典树模版

原文:http://blog.csdn.net/u011686226/article/details/23262211

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!