Metody Programowania - Lista 6

Zadanie 1

Zapoznać się z przykładem o drzewach AVL.

Zadanie 2

Przerobić wstawianie do drzew AVL tak by było "funkcjonalne", tzn. żeby nie modyfikowało oryginalnego drzewa.

Zadanie 3

Napisać funkcję która mając dane listę (a właściwie drzewo) reprezentujące wyrażenie logiczne i listę wartości zmiennych obliczy wartość tego wyrażenia dla tych zmiennych. Np.
wartość_l([and x1 [or x2 x3]], [[x1 true] [x2 false] [x3 true]])
Tzn. wyrażenie jest listą która ma dwa argumenty, będące zmiennymi lub wyrażeniami. "and" oznacza iloczyn logiczny, "or" sumę logiczną, "not" negację (dla uproszczenia można pominąć inne operatory).