Wysokość drzewa binarnego to odległość od węzła głównego do potomka węzła, który jest najdalej od korzenia.
Poniżej znajduje się przykład:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Wysokość drzewa binarnego: 4
Definicja drzewa binarnego
Drzewo to obiekt zawierający podpisaną wartość całkowitą i albo dwa inne drzewa, albo wskaźniki do nich.
Struktura binarnego drzewa struktury wygląda mniej więcej tak:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
Wyzwanie:
Wejście
Korzeń drzewa binarnego
Wynik
Liczba reprezentująca wysokość drzewa binarnego
Zakładając, że jako dane wejściowe podano katalog główny drzewa binarnego, napisz najkrótszy program, który oblicza wysokość drzewa binarnego i zwraca wysokość. Wygrywa program z najmniejszą liczbą bajtów (białe znaki rozliczeniowe).
h
. Być może lepiej zdefiniować konkretną strukturę złożoną z samych list do celów tego wyzwania.
[root_value, left_node, right_node]
gdzie każdy left_node
i right_node
są również drzewo binarne do zaakceptowania? W wielu językach będzie to trywialne, ale w innych może być zabawne.
a tree is an object that contains a value and either two other trees or pointers to them
. Przydałaby się również definicja obejmująca języki bez obiektów.