#include #include struct node { int st; struct node *link; }; void findclosure(int,int); void insert_trantbl(int ,char, int); int findalpha(char); void print_e_closure(int); static int set[20],nostate,noalpha,s,notransition,c,r,buffer[20]; char alphabet[20]; static int e_closure[20][20]={0}; struct node * transition[20][20]={NULL}; void main() { int i,j,k,m,t,n; struct node *temp; printf("Enter the number of alphabets?\n"); scanf("%d",&noalpha); getchar(); printf("NOTE:- [ use letter e as epsilon]\n"); printf("NOTE:- [e must be last character ,if it is present]\n"); printf("\nEnter alphabets?\n"); for(i=0;i qno alphabet qno]\n",notransition); printf("NOTE:- [States number must be greater than zero]\n"); printf("\nEnter transition?\n"); for(i=0;ist,sta); temp=temp->link; } } } void insert_trantbl(int r,char c,int s) { int j; struct node *temp; j=findalpha(c); if(j==999) { printf("error\n"); exit(0); } temp=(struct node *)malloc(sizeof(struct node)); temp->st=s; temp->link=transition[r][j]; transition[r][j]=temp; } int findalpha(char c) { int i; for(i=0;i