字典树(Trie) (二)

2014-11-24 02:27:57 · 作者: · 浏览: 5
p = p->next[id];
}
if(p->isword)
return true;
else
return false;
}
void del(Trie *root)
{
for(int i=0;i {
if(root->next[i]!=NULL)
{
del(root->next[i]);
}
}
delete root;
}
int main()
{
int num=0;
char str1[30],str2[30];
for(int i=0;i {
root->next[i] = NULL;
}
root->isword = false;
while(gets(word[num]))
{
createTrie(word[num]);
num++;
}
for(int i=0;i {
int len = strlen(word[i]);
if(len==1)
continue;
for(int j=0;j {
int k;
if(j==len-1) continue;
for(k=0;k<=j;k++)
{
str1[k] = word[i][k];
}
str1[k]='\0';
int k2=0;
for(int l=k;l {
str2[k2++]=word[i][l];
}
str2[k2]='\0';
if(findTrie(str1)&&findTrie(str2))
{
cout< break;//居然错在这里了(可能会重复输出)
}
}
}
del(root);
return 0;
}