Zadania

ZADANIE 18.1 (BINARYTREE)

Mamy drzewo binarne bez klasy BinarySearchTree. Napisać funkcję count_leaves(top), która liczy liście drzewa binarnego. Liście to węzły, które nie mają potomków. Można podać rozwiązanie rekurencyjne lub rozwiązanie iteracyjne, które jawnie korzysta ze stosu.

Załóżmy, że drzewo binarne przechowuje liczby. Napisać funkcję count_total(top), która podaje sumę liczb przechowywanych w drzewie.


def count_leaves(top): pass

def count_total(top): pass

ZADANIE 18.2 (BINARYSEARCHTREE)

Dla drzewa BST napisać funkcje znajdujące największy i najmniejszy element przechowywany w drzewie. Mamy łącze do korzenia, nie ma klasy BinarySearchTree. Drzewo BST nie jest modyfikowane, a zwracana jest znaleziona wartość (węzeł). W przypadku pustego drzewa należy wyzwolić wyjątek ValueError lub zwrócić None.


def bst_max(top): pass

def bst_min(top): pass