字典树——Trie

相关概念

1、基本概念
2、剑指Offer

假设节点的分支数为node_Branch,字符串数量为n,字符串最大长度为len,
那么最大节点数组=Arr_sizemax= n * len

int nx[100000][27];
int cnt=0;
bool end[100000]; //终结点是否存在 

void insert(string s){
	int pos=0;
	int len=s.size();
	for (int i=0; i<len; i++){
		int t=s[i]-'a';
		if (!nx[pos][t]) nx[pos][t]=++cnt; //添加节点 
		pos=nx[pos][t];
	}
	end[pos]=1;	//标记终节点 
}

bool find(string s){
	int pos=0;
	int len=s.size();
	for (int i=0; i<len; i++){
		int t=s[i]-'a';
		if (nx[pos][t]) return 0;
		pos=nx[pos][t];
	}
	return end[pos];
}
发布了18 篇原创文章 · 获赞 5 · 访问量 1167

猜你喜欢

转载自blog.csdn.net/qq_43640009/article/details/100674695