Praca domowa nr 2:
Załóżmy, że mamy zdefiniowane drzewo binarne.
Liściem drzewa nazwiemy węzeł, który nie ma lewego ani prawego potomka (czyli wezel A jest liściem gdy A->Left = A->Right = NULL).
Wysokością drzewa nazwiemy "ilość pięter" między korzeniem a najdalszym liściem. (np. drzewo z jednego węzła ma wysokość 0).
Wysokością_min drzewa nazwiemy "ilość pięter" między korzeniem a
najbliższym liściem. (np. drzewo z trzech węzłów może mieć wysokość_min równą 1 lub 2).
O dwóch węzłach A i B powiemy, że A jest przodkiem B jeżeli B można osiągnąć z A schodząc w dół (być może o więcej niż jedno piętro) Np. w drzewie
6
3 7 2 4
węzęł 6 jest przodkiem wszystkich pozostałych, ale węzeł 7 nie jest niczyim przodkiem.
Zadanie 1. Napisać funkcje wys i wys_min, które jako argument przyjmą wskaźnik do korzenia drzewa, a zwrócą wysokość i wysokość_min. (zadanie na 3 pkt)
Zadanie 2. Napisać funkcję CJJP ("czy jest jego przodkiem") która otrzyma jako argumenty wskaźniki do dwóch węzłów drzewa, a odpowie na pytanie, czy pierwszy wezel jest przodkiem drugiego. (zadanie za 2 pkt.)
W sumie 5 pkt. Termin - 25 kwietnia. Dziękuję.
W programie należy użyć robionego na zajęciach sposobu dodawania elementów do BST i wyświetlania drzewa tak, aby możliwe było zilustrowanie działania powyższych funkcji.