This is an old revision of the document!
Abstract Datatypes
1. Definiți constructori pentru un arbore binar ce poate conține ca elemente numere întregi.
2. Definiți axiome pentru următorii operatori:
size : BTree → Integer(numărul total de valori din arbore)height : BTree → Integer(numărul de nivele al arborelui)mirror : BTree → BTree(arborele oglindit pe verticală, i.e. pentru orice nod, copilul stâng devine copilul drept și vice-versa)flatten : BTree → List(lista cu toate elementele din arbore; observați că există mai multe ordini posibile)
3. Definiți constructori pentru o coadă (tip FIFO) ce poate conține elemente de un tip arbitrar E.
4. Definiți axiome pentru următorii operatori pe coadă:
deque : FIFO → FIFO(coada fără primul element adăugat, i.e. cel mai vechi)top : FIFO → E(primul, cel mai vechi adăugat, element)length : FIFO → Integer(numărul de elemente din coadă)
5. Definiți constructori pentru un Map cu chei de tip K și valori de tip V.
6. Definiți axiome pentru următorii operatori pe Map:
get : Map × K → V(elementul asociat cu o cheie dată)update : Map × K × V → Map(un Map cu o nouă asociere cheie:element)exists : Map × K → Bool(verifică dacă cheia dată are o valoare asociată)delete : Map × K → Map(șterge cheia și valoarea asociată)