Untitled
unknown
plain_text
3 years ago
2.7 kB
6
Indexable
#include <stdio.h> #include <stdlib.h> struct dict { struct dict *left,*right; char word[10],meaning[20]; }*Root=NULL; typedef struct dict dictionary; int check(char[],char[]); void insert(dictionary *); void Search(); void view(dictionary *); int check(char a[],char b[]){ int i,j,c; for(i=0,j=0 ; a[i]!='\0'&&b[j]!='\0' ; i++,j++){ if(a[i]>b[j]){ c=1; break; } else if(b[j]>a[i]){ c=-1; break; } else c=0; } if(c==1) return 1; else if(c==-1) return -1; else return 0; } void Search(){ int flag=0; dictionary *ptr; ptr=Root; char w[10]; printf("\nEnter word"); scanf("%s",w); while(ptr!=NULL && flag==0){ if(check(w,ptr->word)>0) ptr=ptr->right; else if(check(w,ptr->word)<0) ptr=ptr->left; else if(check(w,ptr->word)==0){ flag=1; printf("\n%s",ptr->meaning); } } if(flag==0) printf("\nWord not found"); } void insert(dictionary *temp){ int flag=0; dictionary *ptr,*par; ptr=Root; if(Root==NULL) Root=temp; else{ while(ptr!=NULL ){ if(check(temp->word,ptr->word)>0){ par=ptr; ptr=ptr->right; } else if(check(temp->word,ptr->word)<0) { par=ptr; ptr=ptr->left; } else if(check(temp->word,ptr->word)==0){ flag=1; printf("\nWord exists!!"); break; } } if(flag==0 && ptr==NULL){ if(check(par->word,temp->word)==1) par->left=temp; else if(check(par->word,temp->word)==-1) par->right=temp; } } } void view(dictionary *ptr){ if(Root==NULL) printf("\nEmpty dictionary\n"); else if(ptr !=NULL){ view(ptr->left); printf("\nWord:%s\n",ptr->word); printf("\nMeaning:%s\n",ptr->meaning); view(ptr->right); } } int main(int argc, char const *argv[]) { int ch; dictionary *temp; while(ch!=4){ printf("\n1.Search\n2.Insert\n3.View\n4.Exit\nYour choice please.."); scanf("%d",&ch); switch (ch) { case 1: Search();break; case 2: temp=(dictionary*)malloc(sizeof(dictionary)); temp->left=NULL; temp->right=NULL; printf("\nInsert word:\n"); scanf("%s",temp->word); printf("\nInsert meaning:\n"); scanf("%s",temp->meaning); insert(temp); break; case 3: view(Root); break; case 4:exit(0); } } return 0; }
Editor is loading...