Friday, April 1, 2011

#5 Binarno drvece prvi primer

#include<stdio.h>
#include<conio.h>
//ovo je stari C
//#include<alloc.h>
//ovo je za dev C++
#include<stdlib.h>
#include<string.h>

typedef char ime[10];

typedef struct cvor{
         ime lice;
         struct cvor *levo;
         struct cvor *desno;
} BCVOR;
 //funkcija za pisanje
 void pisi(BCVOR *tekuci){
      if(tekuci!=NULL){
        pisi(tekuci->levo);
        printf("%s->",tekuci->lice);
        pisi(tekuci->desno);
      }
  }
 
  void umetni(BCVOR *novi,BCVOR **pkoren){
                   
         if(*pkoren==NULL){
            *pkoren=novi;
            novi->levo=NULL;
            novi->desno=NULL;                 
         }
         else{
          // if(novi->lice<(*pkoren)->lice)
             if (strcmp(novi->lice,(*pkoren)->lice)<0){
                umetni(novi,&(*pkoren)->levo);
             }
            else {
              umetni(novi,&(*pkoren)->desno);   
            }    
         }
       }
 
  main(){
   BCVOR *koren,*novi;
   char osobe[10];
   //pocetak liste je prazan
   koren=NULL; 
     
   printf("\n Unesi imena liste:\n");
  
   while(strcmp(osobe,"KRAJ")!=0)
   {
       novi=(BCVOR *)malloc(sizeof(BCVOR));
       strcpy(novi->lice,osobe);
       umetni(novi,&koren);
       scanf("%s",&osobe);
                                
   } 
      printf("\n\n Sadrzaj drveta je:\n");
      pisi(koren);
 getch();    
}     

1 comment: