Zadanie 12 (termin oddania 9 marca, 23:59, 2 pkt)

Napisz _modul_ dla programu, ktory:
 - wczyta ze standardowego wejscia i zbuduje w pamieci dwa drzewa 
    binarnych wyszukiwan (BST),
 - doda je do siebie tworzac trzecie drzewo (binarne, ale juz nie koniecznie BST),
 - wypisze to trzecie drzewo infiksowo,
 - zwolni pamiec.

 Dane do programu maja postac dwu wierszy. Kazdy wiersz opisuje jedno drzewo
 i ma postac ciagu liczb calkowitych pooddzielanych pojedynczymi odstepami (ani 
 przed pierwsza liczba, ani za ostatnia nie ma odstepow). Wszystkie liczby z wiersza
 nalezy jedna po drugiej wstawiac do (poczatkowo pustego) drzewa BST. Przyjmujemy, 
 ze przy wstawianiu powtarzajace sie klucze wstawiamy do prawego poddrzewa.

Wynik dodawania dwu drzew binarnych (wiec takze i BST) definiujemy jako drzewo
binarne majace te wlasnosc, ze ma ono wierzcholek wtw gdy w tym samym miejscu
struktury drzewa co najmniej jedno z dodawanych drzew ma wierzcholek Wartoscia
przechowywana w wierzcholku jest suma wartosci wiercholkow z odpowiadajacych
mu wierzcholkow dodawanych drzew (jesli w jednym z dodawanym drzew nie 
ma odpowiadajacego wierzcholka, to traktujemy go jak wierzcholek z wartoscia 0).

Wypisywanie drzewa binarnego polega tu na wypisaniu tylu wierszy ile drzewo
ma wierzcholkow, kolejne wiersze odpowiadaja kolejnym wierzcholkom,
w kazdym wierszu wypisujemy najpierw glebokosc wierzcholka (przyjmujemy, ze
korzen ma glebokosc 0), potem pojedynczy odstep i na koniec wartosc 
przechowywana w wierzcholku.

Modul ma miec nastepujacy 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_ nazywac sie zad12.pas.

Program bedzie mial nastepujaca postac:

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 wypisac:

1 -3
0 5
2 5
1 8
2 3

UWAGA: jako rozwiazanie nalezy wyslac _wylacznie_ modul!

Dodatek:

Rysunki drzew z przykladu (dla czcionki nieproporcjonalnej):

pierwsze:
1
 \
  2
   \ 
    3


drugie:
  4
 / \
-3  6
   /  
   5

wynik:
  5
 / \
-3  8
   / \  
   5  3