Metody Programowania - Lista 8


Zadanie 1

Napisać procedurę "funkcjonalego" usuwania elementu z drzewa. Tzn. funkcja to ma zwracać nowe drzewo w którym dany element już nie występuje i które współdzieli większość węzłów ze starym drzewem. Funkcja nie ma modyfikować starego drzewa.

Uwaga: Jest to podobne do przykładu drzewo2.p .

Zadanie 2

Napisać szybszą procedurę sprawdzania czy dane drzewo jest drzewem AVL (procedura w pragramie przykładowym wykonuje wielokrotne przejścia po drzewie -- wykonać sprawdzenie w jednym przejściu).

Zadanie 3

"Przepisać" na C procedurę funkcjonalnego wstawiania do drzewa. Dokładniej, założyć że klucze są liczbami całkowitymi i zadeklarować jako typ węzła odpowiednią strukturę z dwoma wskaźnikami na potomki -- wersja w C ma działać na drzewach zbudowanych z takich węzłów.

Zadanie 4

Wyeliminować rekursję z procedury szukania składowych spójnych. Wskazówka: Użyć dodatkową tablicę jako stos.