#include #include #include "stabla.h" int broj_listova(CVOR *koren){ if(koren==NULL) return 0; if(koren->l==NULL && koren->d==NULL ) return 1; else return broj_listova(koren->l)+broj_listova(koren->d); } int broj_cvorova(CVOR *koren){ if(koren==NULL) return 0; return broj_cvorova(koren->l)+broj_cvorova(koren->d)+1; } int suma_cvorova(CVOR *koren){ if(koren==NULL) return 0; return koren->v + suma_cvorova(koren->l) + suma_cvorova(koren->d); } int suma_listova(CVOR *koren){ if(koren==NULL) return 0; if(koren->l==NULL && koren->d==NULL ) return koren->v; else return suma_listova(koren->l)+suma_listova(koren->d); } void ispis_listova(CVOR *koren){ if(koren==NULL) return; if(koren->l==NULL && koren->d==NULL ){ printf("%d\n",koren->v); return; } ispis_listova(koren->l); ispis_listova(koren->d); } int dubina(CVOR *koren){ int dl,dd; if(koren==NULL) return 0; dl=dubina(koren->l); dd=dubina(koren->d); return dl>dd?dl+1:dd+1; } int maksimalni_broj(CVOR *koren){ if(koren==NULL) return -1; while(koren->d!=NULL) koren = koren->d; return koren->v; } int main(){ CVOR *koren = ucitaj_drvo_std(); //ispisi(koren); printf("%d\n%d\n%d\n%d\n%d\n%d\n",broj_cvorova(koren),broj_listova(koren), suma_cvorova(koren), suma_listova(koren), dubina(koren), maksimalni_broj(koren)); ispis_listova(koren); koren = obrisi(koren); ispisi(koren); return 0; }