void wstaw(korzen *tree, str el) { //printf("%d ", el); if((*tree)==NULL) { // putchar('a'); korzen nowy = malloc(sizeof(node)); nowy->count=1; nowy->val=el; nowy->syn1=NULL; nowy->syn2=NULL; *tree = nowy; return; } if((*tree)->val==el) { //putchar('b'); (*tree)->count++; return; } if((*tree)->val>el) { //putchar('c'); wstaw(&((*tree)->syn1), el); return; } //putchar('d'); wstaw(&((*tree)->syn2), el); return; }
int maxszer(drzewo d) { kolejka kol = malloc(sizeof(Tkolejkal)); drzewo temp; int max = 0, poziom = 0; tworzpusta(kol); wstaw(kol, d); wstaw(kol, NULL); while(!pusta(*kol)) { pobierz(kol, &temp); if(temp == NULL) { if(poziom > max) max = poziom; if(poziom > 0) wstaw(kol, NULL); poziom = 0; } else { poziom++; if(temp->psyn != NULL) wstaw(kol, temp->psyn); if(temp->lsyn != NULL) wstaw(kol, temp->lsyn); } } free(kol); return max; }
int main() { printf("ile liczb?: "); int n; korzen t1, *tree; tree=malloc(sizeof(korzen)); *tree=NULL; scanf("%d", &n); for(int i=0; i<n;i++) { int nowy; scanf("%d", &nowy); wstaw(tree, nowy); } print1(*tree); printf("\n"); printf("co znalezc?:"); int szuk; scanf("%d", &szuk); szuk=find(*tree,szuk); if(szuk==-1) printf("not found\n"); else printf("wystepuje %d raz(y)", szuk); return 0; }
int main(){ struct Korzen *k; tworzKorzen(&k); char astring[] = { "malina" }; char bstring[] = { "arbuz" }; char cstring[] = { "baklazan" }; char dstring[] = { "kapusta" }; char estring[] = { "lubczyk" }; wstaw(astring, k); wstaw(bstring, k); wstaw(cstring, k); wstaw(dstring, k); wstaw(estring, k); szukaj(estring, k); char niema[] = { "pies" }; szukaj(niema, k); printf("%d", rozmiar(k)); free(k); getchar(); return 0; }