Zadanie 12 (termin oddania 9 marca, 23:59, 2 pkt) Napisz _moduł_ dla programu, który: - wczyta ze standardowego wejścia i zbuduje w pamięci dwa drzewa binarnych wyszukiwań (BST), - doda je do siebie tworząc trzecie drzewo (binarne, ale już nie koniecznie BST), - wypisze to trzecie drzewo infiksowo, - zwolni pamięć. Dane do programu mają postać dwu wierszy. Każdy wiersz opisuje jedno drzewo i ma postać ciągu liczb całkowitych pooddzielanych pojedynczymi odstępami (ani przed pierwszą liczbą, ani za ostatnią nie ma odstępów). Wszystkie liczby z wiersza należy jedna po drugiej wstawiać do (początkowo pustego) drzewa BST. Przyjmujemy, że przy wstawianiu powtarzające się klucze wstawiamy do prawego poddrzewa. Wynik dodawania dwu drzew binarnych (więc także i BST) definiujemy jako drzewo binarne mające tę własność, że ma ono wierzchołek wtw gdy w tym samym miejscu struktury drzewa co najmniej jedno z dodawanych drzew ma wierzchołek Wartością przechowywana w wierzchołku jest suma wartości wierchołków z odpowiadających mu wierzchołków dodawanych drzew (jeśli w jednym z dodawanym drzew nie ma odpowiadającego wierzcholka, to traktujemy go jak wierzchołek z wartością 0). Wypisywanie drzewa binarnego polega tu na wypisaniu tylu wierszy ile drzewo ma wierzchołków, kolejne wiersze odpowiadają kolejnym wierzchołkom, w każdym wierszu wypisujemy najpierw głębokość wierzchołka (przyjmujemy, że korzeń ma głębokość 0), potem pojedynczy odstęp i na koniec wartość przechowywaną w wierzchołku. Moduł ma mieć następujący interfejs: interface type TBin = {odpowiednia deklaracja} function wczytaj: TBin; function dodaj(d1, d2: TBin): TBin; procedure wypisz(d: TBin); procedure usun(var d: TBin); i _musi_ nazywać się zad12.pas. Program będzie miał następującą postać: program program_zad12; uses zad12; var d1, d2, d3: TBin; begin d1 := wczytaj; d2 := wczytaj; d3 := dodaj(d1,d2); wypisz(d3); usun(d1); usun(d2); usun(d3); end. Np. dla danych: 1 2 3 4 -3 6 5 program powinien wypisać: 1 -3 0 5 2 5 1 8 2 3 UWAGA: jako rozwiązanie należy wysłać _wyłącznie_ moduł! Dodatek: Rysunki drzew z przykładu (dla czcionki nieproporcjonalnej): pierwsze: 1 \ 2 \ 3 drugie: 4 / \ -3 6 / 5 wynik: 5 / \ -3 8 / \ 5 3