Sunteți pe pagina 1din 1

Test 1 AA

28.11.2012
Nota : Suma punctajelor este 12. 1. (1p + 1p) Fie urmatoarea recurenta: T (n) = 6T (n/3) + 23 log10 n (1) margini n5 1 n < 5. si inferioare Tree (T ) : Tree (T ) , , : Tree (T ) T Tree (T ) Tree (T ). Constructorul intern al tipului Tree (T ) este utilizat in expresii de forma left , key , right , unde key este cheia, iar left si right sunt subarborii stang, respectiv drept. Fie P (t) urmatoarea proprietate: pentru orice nod n din arborele t, cheia lui n este mai mare sau egala cu orice cheie din subarborele lui stang, si mai mica sau egala cu orice cheie din subarborele lui drept. (a) Deniti axiome pentru operatorul atten : Tree (T ) List (T ) astfel incat urmatoarea proprietate sa e indeplinita: t Tree (T )P (t) (atten (t) este o lista sortata). (b) Demonstrati ca specicatia voastra respecta proprietatea enuntata mai sus. Demonstrati ca: L List (Integer ) size (reverse (L)) = size (L).

7. (1p + 1p) Fie tipul de date abstract List (T ) denit anterior, si Tree (T ) denit mai jos.

(a) Determinati stranse.

superioare

(b) Demonstrati marginile gasite, prin metoda substitutiei. 2. (2p) Rezolvati, prin metoda iterativa, folosind, eventual, arbori de recurenta, urmatoarea ecuatie: T (n) = T (n/4) + T (3n/4) + n.

3. (1p) Justicati valoarea de adevar a urmatoarei propozitii: Daca f (n) = (g (n)), atunci |f (n) g (n)| = (f (n) + g (n)). 4. (1p) |O(f (n)) O(f (n))| = . . . . Justicati. 5. (1p + 1p) Consideram implementarea unui inel (Ring ), folosind doua liste, L, R . Consideram ca operatia de inversare (reverse ) aplicata unei liste se realizeaza in timp liniar in raport cu numarul de elemente din lista. (a) Aratati ca, pentru orice secventa S de operatii insert si move aplicate asupra inelului, cost (S ) = O(n), unde n reprezinta numarul de operatii din secventa. (b) Folosind functia de potential ( L, R ) = size (L), identicati costurile amortizate ale operatiilor insert si move . 6. (2p) Fie urmatoarea specicatie a tipului de date abstract List (T ): List (T ) [] : List (T ) : : T List (T ) List (T ) size : List (T ) N size ([]) = 0 size (e : L) = 1 + size (L)

(s1) (s2)

++ : List (T ) List (T ) List (T ) (a1) []++L = L (a2) (e : L)++L = e : (L++L ) reverse : List (T ) List (T ) reverse ([]) = [] reverse (e : L) = reverse (L)++(e : [])

(r1) (r2)

S-ar putea să vă placă și