Don't like ads? PRO users don't see any ads ;-)
Guest

Imenik

By: a guest on Jun 16th, 2012  |  syntax: C  |  size: 3.45 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. typedef struct Korisnik {
  7.         char  ime [50]
  8.         char prezime [50]
  9.         char telefon [50]
  10.         } Korisnik;
  11.        
  12. typedef struct Element {
  13.         Korisnik korisnik;
  14.         struct Element *_levi, *_desni;
  15.         } Element;
  16.        
  17. Element* ubaci (Element *el, Korisnik* k){
  18.          Element* novi;
  19.          if (el==NULL) {
  20.             novi=(Element*)malloc(sizeof(Element));
  21.             novi ->_levi=NULL;
  22.             novi ->_desni=NULL;
  23.             strcpy(novi ->korisnik.ime,k->ime);
  24.             strcpy(novi ->korisnik.prezime,k->prezime);
  25.             strcpy(novi ->korisnik.telefon,k->telefon);          
  26.              return novi;
  27.          }
  28.          switch(strcmpi(el ->korisnik.prezime,k->prezime))
  29.          {
  30.          case -1:
  31.               el ->_levi=ubaci(el->_levi,k); break;
  32.          case 1: case 0:
  33.               el ->_desni=ubaci(el->_desni,k); break;                  
  34.          }
  35.          return el;
  36.          }
  37.          void ispisi (Element *drvo,File* f)
  38.          {
  39.          if (drvo != NULL)
  40.          {
  41.                   ispisi (drvo ->_levi,f);
  42.                   fprintf (f,"%s %s %s \n",drvo->korisnik.ime,
  43.                   drvo->korisnik.prezime,drvo->korisnik.telefon);
  44.                   ispisi (drvo->_desni,f);
  45.                   }
  46.               }
  47.         void pronadji (Element* drvo,Korisnik* k)
  48.         {
  49.            if (drvo==NULL)
  50.            return;
  51.            if (!strcmp(drvo->korisnik.ime,k->ime)&& !strcmp (drvo->korisnik.prezime,k->prezime))
  52.            {strcpy(k->telefon,drvo->korisnik.telefon);
  53.            return;}
  54.            
  55.            if (strcmp(drvo->korisnik.prezime,k->prwzime)==-1)
  56.            pronadji (drvo->_levi,k);
  57.            else pronadji (drvo->_desni,k);
  58.              }  
  59.             void ispisi_telefone (Element* drvo,char prezime[])
  60.             {
  61.             if (drvo==NULL)
  62.             return;
  63.             if (!strcmp(drvo->korisnik.prezime,prezime))
  64.             printf ("Telefon: %s \n",drvo->korisnik.telefon);
  65.             if (strcmp (drvo->korisnik.prezime,prezime)==-1)
  66.             ispisi_telefone (drvo->_desni,prezime);
  67.             else ispisi_telefone(drvo->_desni,prezime);
  68.             }
  69.            
  70.             int broj_korisnika (Element* drvo)
  71.             {
  72.                 if (drvo==NULL)
  73.                 return 0;
  74.                 return broj_korisnika (drvo->_levi)+1
  75.                 + broj_korisnika (drvo->_desni);
  76.                 }
  77.                
  78.               void slova (Element* drvo,int a[])
  79.               {
  80.                    if (drvo != NULL)
  81.                    {
  82.                     char ch;
  83.                     slova (drvo->_levi,a);
  84.                     ch=tolower((drvo->korisnik.ime)[0]);
  85.                     a[ch-'a']++;
  86.                     slova (drvo->_desni,a)                
  87.                    }
  88.                    }  
  89.             void statistika (Element* drvo)
  90.             {
  91.                  FILE* out;
  92.                  int* _brSlovo,i;
  93.                  _brSlovo=(int)calloc(26,siyeof(int));
  94.                  if ((out=fopen("statistika.txt","w"))==NULL)
  95.                  {
  96.                  fprintf(stderr,"Greska: fajl statistika.txt");
  97.                  exit(EXIT_FAILURE);
  98.                  }
  99.             fprintf (out,"Broj korisnika: %d \n",broj_korisnika)