Documente Academic
Documente Profesional
Documente Cultură
Complexitate
Ludmila NOVAC
Dr., conf. univ.
Dep. Informatică
Unităţi de conţinut
Structuri dinamice de date
1. Structuri dinamice de date (arbori binari, liste, stive, cozi).
Arbori binari. Crearea arborilor. Accesul la elementele unui arbore.
Parcurgerea arborilor binari. Arbori binari plini. Arbori binari de căutare.
Exemplu de clasă generică de reprezentare a arborilor binari de căutare.
2. Liste simplu înlănţuite. Liste înlănţuite ciclic. Liste dublu înlănţuite.
Liste dublu înlănţuite ciclic. Exemple de clase generice de reprezentare
a listelor.
3. Stive. Stive prin buffer de lungime fixă. Stive prin liste simplu
înlănţuite. Exemple de clase generice de reprezentare a stivelor.
Realizarea algoritmului de sortare rapidă prin utilizarea stivei
4. Cozi. Cozi prin buffer ciclic. Cozi prin liste simplu înlănţuite.
Exemple de clase generice de reprezentare a cozilor.
Planul Lecţiei
• Liste simplu înlănţuite. Liste înlănţuite ciclic.
• Operaţii asupra elementelor listelor simplu înlănţuite şi înlănţuite ciclic
(Crearea, Parcurgerea, Căutarea, Inserarea, ştergerea elementelor).
• Stive. Stive prin buffer de lungime fixă. Stive prin liste simplu înlănţuite.
Realizarea algoritmului de sortare rapidă prin utilizarea stivei
• Cozi. Cozi prin buffer ciclic. Cozi prin liste simplu înlănţuite.
• La lista simplu înlănţuită (engl. chained list, linked list) compartimentul doi
reprezintă un pointer la următorul element al listei. La ultimul element acest
pointer are valoarea NULL.
• În cazul listei înlănţuite circular (engl. circular linked list, ring list), pointerul din
componenta a doua al ultimului element conţine adresa primului element din
listă.
Operaţii cu liste:
• crearea listei;
• căutarea în listă;
• adăugarea/ inserarea unui element nou (la început, la
sfârşit, în poziţia indicată, după elementul indicat,
înaintea elementului indicat, în locul elementului indicat);
• excluderea unui element din listă (de la început, de la
sfârşit, din poziţia indicată, un element specificat);
• concatenarea listelor.
Structura listei simplu înlănţuite
• Pentru a asigura un grad mai mare de generalitate listei a fost creat un alias
pentru datele utile (în cazul nostru un întreg):
În cazul în care se doreşte memorarea unui alt tip de date, trebuie schimbată
doar declaraţia aliasului Date. Pentru memorarea listei se foloseşte o structură
autoreferită. Această structură va avea forma:
În cazul în care elementul este ultimul din listă, pointerul urmator va avea valoarea
NULL. Declararea listei se face sub forma:
Parcurgerea şi afişarea listei simplu înlănţuite
În cazul În care se doreşte memorarea unui alt tip de date, trebuie schimbată doar
declaraţia aliasului Date. Pentru memorarea listei se foloseşte o structură
autoreferită. Acesta structură va avea forma:
15
https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%8F%D0%B7%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA
Liste simplu înlănţuite vs. tablouri dinamice
Timpul de execuţie a operaţiilor
https://en.wikipedia.org/wiki/Linked_list
Condiţiile pentru lucrarea de laborator №3 la ASDC
„Structuri dinamice de date”