#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 26
typedef struct trie_node
{
struct trie_node *branch[MAX];
int is_str ;
int count;
}Trie;
int max = 0;
void insert(Trie *,char*,char*);
int main()
{
char *s = "hello world,i said hello world.";
Trie boot;
int i;
for(i=0;i<MAX;i++)
boot.branch[i] = NULL;
char *p = s;
char str[30];
int len = 0;
char q[30] = {'\0'};
while( *p != '\0' )
{
if( (*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
{
q[len] = *p;
len++;
}
else
{
if(len > 0)
{
insert(&boot,q,str);
len = 0;
memset(q,'\0',sizeof(q));
}
}
p++;
}
printf("%d %s ",max,str);
return 0;
}
void insert(Trie *boot,char*s,char*str)
{
Trie *p = boot;
char *temp = s;
while(*s != '\0')
{
if(p->branch[*s-'a'] == NULL )
{
int i;
Trie *q = (Trie*)malloc(sizeof(Trie));
p->branch[*s-'a'] = q;
p->is_str = 0;
for(i=0;i<MAX;i++)
{
q->branch[i]=NULL;
}
p = p->branch[*s-'a'];
}
else
{
p = p->branch[*s-'a'];
}
s++;
}
p->is_str = 1;
p->count++;
if(p->count > max)
{
max = p->count;
strcpy(str,temp);
}
}
统计单词出现最多的个数
最新推荐文章于 2020-11-24 03:04:12 发布