Vom continua cu analiza amortizata inceputa in laboratorul precedent cu un ArrayList cu urmatoarele proprietati:
isi dubleaza capacitatea cand este plin (ex: avem 4 elemente intr-un ArrayList cu capacitate 4. La adaugarea celui de-al 5-lea element, capacitatea va deveni 8 - necesita o copiere de 4 element, apoi inserarea celui de-al 5-lea element).
isi injumatateste capacitatea cand este un sfert plin (ex: avem 5 elemente intr-un ArrayList de capacitate 16. La urmatoarea stergere, capacitatea va deveni 8 - necesita stergerea elementului 5, apoi copierea celor 4 elemente ramase).
Exercitii
Aflati costul amortizat al operatiilor de inserare si stergere prin metoda agregatelor.
Aflati costul amortizat pentru k operatii de inserare si p operatii de stergere.
Aflati costul amortizat al operatiei de stergere prin:
metoda bancherului
metoda potentialelor
Bonus: Aflati costul amortizat al operatiei de inserare prin:
metoda bancherului
metoda potentialelor
Algebraic Data Types (ADT)
Consideram urmatorul ADT:
Void : List
Cons : E x List -> List
Exercitii
Implementati ADT-ul in C.
Definiti axiome pentru size, add, append, reverse.