Quick actions

cmd+k|ctrl+k

Navigation

Languages

8d

Snippet info

Language

C

Visibility

public

Author

sriram

Created

2023-11-15T04:04:03.980999Z

Updated

2023-11-15T04:39:29.798568Z

#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