Drzewa poszukiwań binarnych

Zadanie AL7.1. Narysuj drzewo poszukiwań binarnych, które powstanie po:
wstawieniu elementów 18, 11, 6, 30, 21, 19, 8, 22, 23, 5, 20, 26, 17 do pustego drzewa;
a następnie usunięciu elementów 8, 30, 18, 11.

Zadanie AL7.3. (4 pkt.) Zaimplementuj strukturę danych, wraz z operacjami WSTAW, SZUKAJ, USUŃ, DRUKUJ, która realizuje koncepcję drzewa poszukiwań binarnych, którego kluczami/elementami są liczby całkowite. Przyjąć, że do drzewa wstawiane są klucze o różnych wartościach, a wypisanie (DRUKUJ) wartości węzłów odbywa się np. w porządku in-order (najlepiej z zaznaczaniem przez odstępy zagłębienia węzłów w drzewie) .

Zadanie AL7.4. (5 pkt.) Zaimplementuj strukturę danych, wraz z operacjami WSTAW, SZUKAJ, USUŃ, DRUKUJ która realizuje koncepcję drzewa poszukiwań binarnych, którego kluczami/elementami są liczby całkowite. Przyjąć, że wszystkie węzły mają różne klucze, a w przypadku wielokrotnego wstawiania tej samej wartości w odpowiednim węźle zliczamy ilość powtórzeń tego klucza. Analogicznie, "fizyczne" usuwanie węzła o danym kluczu ma miejsce dopiero wtedy, gdy ilość powtarzających się takich kluczy wynosi 1. Operacja DRUKUJ (podobna jak w zadaniu 7.3) powinna też przy każdym kluczu drukować ilość powtórzeń danego klucza.