diff --git a/program.c b/program.c index 474d5e4..67f7059 100644 --- a/program.c +++ b/program.c @@ -23,7 +23,7 @@ void pridaj_slovo(struct database* database, char* word); void zobraz_strom(struct database* zobraz); struct database { - char slovo[30]; + char slovo[20]; int count; struct database* left; struct database* right; @@ -85,7 +85,7 @@ void pridaj_slovo(struct database* database, char* word) { while(1) { //porovnaj slovo s tym co je v databaze - comp = strcmp(temp->slovo, word); + comp = strcmp(word, temp->slovo); //ak sa rovna, zvys jeho pocetnost o jeden a opusti funkciu if(comp == 0) { @@ -104,7 +104,7 @@ void pridaj_slovo(struct database* database, char* word) { } //pokial sa na lavej adrese nachadza dalsia bunka, zmen adresu z aktualnej bunky na nu a opakuj cyklus od porovnania slova else { - temp = temp->right; + temp = temp->left; } } //pokial je posledny porovnavany znak noveho slova vacsi nez toho ulozeneho, pracuj s pravou vetvou @@ -161,7 +161,7 @@ void zobraz_strom(struct database* zobraz) { if(zobraz->left == NULL && zobraz->right == NULL) return; //pred tym ako pojdes kontrolovat pravu bunku a vojdes do nej, skontroluj ci pocetnost je viac ako 1 a slovo uz nebolo vypisane (kontrola pre pripad ze vlavo neboli bunky, slovo sa vypisalo, no vpravo este bunky su), vypis slovo a pokracuj v kontrole pritomnosti pravej bunky - if(zobraz->count >= 1 && vypisane == 0) { + if(zobraz->count > 1 && vypisane == 0) { pocet++; printf("%s %d\n", zobraz->slovo, zobraz->count); }