#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef struct Korisnik {
char ime [50]
char prezime [50]
char telefon [50]
} Korisnik;
typedef struct Element {
Korisnik korisnik;
struct Element *_levi, *_desni;
} Element;
Element* ubaci (Element *el, Korisnik* k){
Element* novi;
if (el==NULL) {
novi=(Element*)malloc(sizeof(Element));
novi ->_levi=NULL;
novi ->_desni=NULL;
strcpy(novi ->korisnik.ime,k->ime);
strcpy(novi ->korisnik.prezime,k->prezime);
strcpy(novi ->korisnik.telefon,k->telefon);
return novi;
}
switch(strcmpi(el ->korisnik.prezime,k->prezime))
{
case -1:
el ->_levi=ubaci(el->_levi,k); break;
case 1: case 0:
el ->_desni=ubaci(el->_desni,k); break;
}
return el;
}
void ispisi (Element *drvo,File* f)
{
if (drvo != NULL)
{
ispisi (drvo ->_levi,f);
fprintf (f,"%s %s %s \n",drvo->korisnik.ime,
drvo->korisnik.prezime,drvo->korisnik.telefon);
ispisi (drvo->_desni,f);
}
}
void pronadji (Element* drvo,Korisnik* k)
{
if (drvo==NULL)
return;
if (!strcmp(drvo->korisnik.ime,k->ime)&& !strcmp (drvo->korisnik.prezime,k->prezime))
{strcpy(k->telefon,drvo->korisnik.telefon);
return;}
if (strcmp(drvo->korisnik.prezime,k->prwzime)==-1)
pronadji (drvo->_levi,k);
else pronadji (drvo->_desni,k);
}
void ispisi_telefone (Element* drvo,char prezime[])
{
if (drvo==NULL)
return;
if (!strcmp(drvo->korisnik.prezime,prezime))
printf ("Telefon: %s \n",drvo->korisnik.telefon);
if (strcmp (drvo->korisnik.prezime,prezime)==-1)
ispisi_telefone (drvo->_desni,prezime);
else ispisi_telefone(drvo->_desni,prezime);
}
int broj_korisnika (Element* drvo)
{
if (drvo==NULL)
return 0;
return broj_korisnika (drvo->_levi)+1
+ broj_korisnika (drvo->_desni);
}
void slova (Element* drvo,int a[])
{
if (drvo != NULL)
{
char ch;
slova (drvo->_levi,a);
ch=tolower((drvo->korisnik.ime)[0]);
a[ch-'a']++;
slova (drvo->_desni,a)
}
}
void statistika (Element* drvo)
{
FILE* out;
int* _brSlovo,i;
_brSlovo=(int)calloc(26,siyeof(int));
if ((out=fopen("statistika.txt","w"))==NULL)
{
fprintf(stderr,"Greska: fajl statistika.txt");
exit(EXIT_FAILURE);
}
fprintf (out,"Broj korisnika: %d \n",broj_korisnika)