Zad 2 Napisz funkcję wyznaczające: liczbę wezłów drzewa binarnego, liczbę liści, liczbę prawych potomków w całym drzewie, wysokość drzewa.
struct node
{
int dane;
node * left;
node * right;
};
int lb_wezlow ( node * korzen){
int i = 0;
if( korzen != NULL){
i = 1 +lb_wezlow (korzen -> left) + lb_ wezlow (korzen -> right );
}
return i;
}
int lb_lisci ( node * korzen ){
int i = 0;
if (korzen != NULL){
if( korzen -> left == NULL && korzen -> right == NULL){
i++;
}
else{
i = i +lb_lisci ( korzen -> left) +lb_lisci (korzen -> right);
}
}
return i;
}
int lb_ppotomkow (node * korzen){
int i= 0;
if(korzen != NULL){
if(korzen -> right) i++;
i = i + lb_ppotomkow( korzen -> left) + lb_ppotomkow( korzen -> right);
}
return i;
}
int wysokosc( node * korzen){
int i= 0;
if(korzen != NULL ){
if(korzen -> left != NULL || korzen -> right != NULL ){
i++;
}
int a = wysokosc ( korzen -> left );
int b = wysokosc ( korzen -> right);
if( a > b){
i = i+ a;
}
else{
i = i+b;
}
}
return i;
}
Offline