8d
#include<stdio.h>
#include<stdlib.h>
struct node
{
char v;
struct node* p[26];
int l;
};
struct node *root=NULL,*t,*t1;
struct node * createnode(char k)
{
int i;
t1=(struct node*)malloc(sizeof(struct node));
t1->v=k;
for(i=0;i<26;i++)
t1->p[i]=NULL;
t1->l=0;
return t1;
}
void inserttrie(char a[])
{
t=root;
int ix,i;
for(i=0;a[i];i++)
{
ix=a[i]-'a';
if(t->p[ix]==NULL)
t->p[ix]=createnode(a[i]);
t=t->p[ix];
}
t->l=1;
}
int searchtrie(char a[])
{
t=root;
int ix,i;
for(i=0;a[i];i++)
{
ix=a[i]-'a';
if(t->p[ix]==NULL)
return 0;
t=t->p[ix];
}
if(t!=NULL && t->l==1)
return 1;
return 0;
}
int main()
{
int n,i;
char s[20];
root=createnode('#');
printf("enter number of strings");
scanf("%d",&n);
printf("Enter %d strings",n);
for(i=0;i<n;i++)
{
scanf(" %s",s);
inserttrie(s);
printf("inserted");
}
printf("enter the key to be searched");
scanf(" %s",s);
if(searchtrie(s))
printf("YES");
else
printf("no");
}INFO