Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

REZULTAT CHECKER
TOTAL: 100/100
VALGRIND: 20/20

TEMA 1 SDA - AHMAD ARNAOUTE 314CD

1.
    -Am creat structurile specificate in enunt corespunzator
    -structura tabslist e o structura basic de lista dublu inlantuita (putem accesa si first si last acestea fiind 2 noduri
    prin care putem itera la stanga si la dreapta)
    -structura si functiile de stiva sunt basic (invatate la lab)
    -functia de initalizare a listei si a unui nod sunt basic (din nou), pt lista o folosim doar la inceput cand initalizam tabslist,
    functia returnand o lista cu un singur nod, circulara, cu santinela (singurul nod fiind santinela).
    -Declar toate variabilele pe care o sa le folosesc in functii local (in main).
    -citesc tot ce se cere in mod normal.
2. Implementarea functiilor
    NEW_TAB:
        -Aceasta este functia principala care odata facuta, usureaza prima jum de taskuri (pana in Page) f mult.
        -initialzam intr o var locala functiei un tab simplu cu detaliile predef
        -folosim TestPage[0], o variabila nealocata dinamic in main in care am introdus valorile paginii predefinite pentru usurinta
        de a elibera la final toate paginile si descrierile.
        - tabul curent ia valoare tabului declarat local in functie
        - adaugam la finalul listei dublu inlantuite nodul, respectand proprietatea de a fi circulara si a avea santinela (Basic)
    CLOSE:
        -stergem nodul tab_current (o variabila creata de mine local in main la inceputul temei care reprezinta tabul curent initializat
        initial in NEW_TAB prin browser->list->last care ne usureaza treaba si la finalul functiilor in care updatam tabul curent
        updatatam si campul browser->current folosind tab_current.)
        -Dupa ce stergem nodul din lista in mod basic, eliberam ce am alocat dinamic in acel nod.
    OPEN:
        -iteram prin lista pana gasim id ul specificat (calculat manual in main).
        -daca nu gasim (adica ne intoarcem de unde am plecat fara nicio solutie) atunci afisam eroarea.
        -daca il gasim atunci updatatam tabul curent cu valoarea pe care o avem in iterator
    NEXT:
        -Pur si simplu mutam tabul current cu una la dreapta (avem putina atentie la santinela)
    PREV:
        -La fel ca la NEXT.
    PAGE:
        -iteram prin vectorul in care se afla paginile test pana gasim pagina specificata prin idul calculat in main.
        -daca nu gasim idul at eroare.
        -pusham ce avem in tabul curent in stiva backward
        -deschidem in tabul curent pagina specif
        -stergem tot ce e din stiva forward
    BACKWARD:
        -daca n avem nimic in stiva backward atunci eroare
        -pusham in forward ce avem in curent
        -deschidem in tabul curent ce avem in topul backwardului
        -stergem ce avem in topul backwardului
    FORWARD:
        -La fel ca la BACKWARD (Reverse engineering)
    PRINT:
        -Afisam ce id avem in tabul curent si restul din dreapta pan ne intoarcem in tabul curent
        -afisam descrierea pagini curente din tabul curent
    PRINT_HISTORY:
        -iteram prin lista pana gasim tabul cu idul specificat
        -afisam toate urlurile paginilor deschise vreodata in tabul acela, folosindu-ne de stiva backward, forward si de tabul in sine
3. Valgrind
    -Am eliberat tot ce am alocat dinamic in problema
    -M am folosit de testpage pt toate paginile pe care le folosim in problema deci elibararea la final a fiecarei descrieri din acest vector
    este destul.
    -Parcurgem toata lista de taburi si eliberam tot ce am alocat dinamic acolo
    -eliberam si browserul la final

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages