您的位置:首页 > 其它

poj2001字典树

2015-08-10 20:07 351 查看
#include <cstdio>

#include <cstring>

using namespace std;

typedef char st[22];

st str[20003];

st s;int p=0;

struct tree_node

{

int count;

tree_node *next[26];

}root ,node[20003];

void insert(char *word)

{

tree_node *location=&root;

while (*word)

{

if (location ->next[*word-'a']==NULL)

{

node[p].count=0;

location->next[*word-'a']=&node[p++];

}

location =location->next[*word-'a'];

location->count++;

word++;

}

}

void search(char *word)

{

tree_node *location=&root;

while (*word&&location)

{

if (location->count ==1) break;

printf("%c",*word);

location=location->next[*word-'a'];

word++;

}

printf("%\n");

return;

}

int main()

{

int i=0;

while (scanf("%s",str[i])!=EOF)

{

insert(str[i]);

i++;

}

int n=i;

for (i=0;i<n;i++)

{

printf("%s ",str[i]);

search(str[i]);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: