/* Tanel Toova * 6-4 * * */ #include #include #include #define END "LOPP" struct node{ struct node *vasak; struct node *parem; char *word; int kordi; }; struct node *memalloc(void){ return (struct node *)malloc(sizeof(struct node)); } struct node *add_node(struct node *pointer, char *w) { if(!pointer){ pointer=memalloc(); pointer->word=strdup(w); pointer->kordi=1; pointer->parem=NULL; pointer->vasak=NULL; }else{ if(strcasecmp(pointer->word,w)==0){ pointer->kordi++; } if(strcasecmp(pointer->word,w)>0){ pointer->vasak=add_node(pointer->vasak,w); } if(strcasecmp(pointer->word,w)<0){ pointer->parem=add_node(pointer->parem,w); } } return pointer; } int print(struct node *pointer) { if(pointer->vasak!=NULL){print(pointer->vasak);} fprintf(stdout,"sõna %s oli %i korda\n",pointer->word,pointer->kordi); if(pointer->parem!=NULL){print(pointer->parem);} } int main(void) { struct node *first_node=NULL; char input[256]; while(1){ scanf("%s",input); fprintf(stdout,"Kirjutasid %s\n",input); if(strcmp(END,input)==0){break;} first_node=add_node(first_node,input); } print(first_node); return(0); }