|

Structuri de Date Liniare Implementate Dinamic – Stiva 10

1. Obiectivele lecției: 2. Ce este o stivă? 3. Avantaje și dezavantaje Avantaje Dezavantaje Structură simplă și ușor de implementat. Accesibilitate limitată (doar vârful stivei). Eficientă pentru gestionarea problemelor LIFO. Necesită mai multe operații pentru acces aleator. Utilă în aplicații precum recursivitatea sau backtracking. 4. Implementarea unei stive folosind liste simplu înlănțuite Structura unui nod…

|

Structuri de Date Liniare Implementate Dinamic – Coada 11

1. Obiectivele lecției: 2. Ce este o coadă? 3. Avantaje și dezavantaje Avantaje Dezavantaje Structură simplă și ușor de implementat. Inserarea și ștergerea sunt limitate la capete. Eficientă pentru gestionarea operațiilor FIFO. Acces aleator nu este posibil. Poate fi implementată dinamic. Necesită gestionarea pointerilor pentru dinamism. 4. Implementarea unei cozi folosind liste simplu înlănțuite Structura…

|

Structuri de Date Arborescente Implementate Dinamic – Arbori 12

1. Obiectivele lecției: 2. Ce este un arbore? 3. Avantaje și dezavantaje Avantaje Dezavantaje Eficient pentru căutări rapide în structuri mari (BST). Implementarea și gestionarea sunt mai complexe. Structură flexibilă pentru date ierarhice. Consumul de memorie crește cu dimensiunea arborelui. 4. Structura unui nod struct Nod {     int valoare;       // Informația stocată     Nod*…

|

Structuri de Date Arborescente Implementate Dinamic – Arbore Parțial de Cost Minim 13

1. Obiectivele lecției: 2. Ce este un arbore parțial de cost minim? 3. Aplicații practice ale MST 4. Algoritmi clasici pentru MST 5. Implementarea algoritmului lui Kruskal Structura pentru reprezentarea grafului #include <iostream> #include <vector> #include <algorithm> using namespace std; struct Muchie {     int sursa, destinatie, cost; }; // Comparator pentru sortarea muchiilor după…

|

Structuri de Date Arborescente Implementate Dinamic – Arbori Binari 14

1. Obiectivele lecției: 2. Ce este un arbore binar? 3. Avantaje și dezavantaje Avantaje Dezavantaje Structură flexibilă pentru gestionarea datelor ierarhice. Gestionarea dinamică necesită atenție pentru integritate. Traversare eficientă pentru căutare, inserare și ștergere. Performanța poate scădea în cazuri de arbori dezechilibrați. Este baza pentru alte structuri complexe, cum ar fi heap-uri. 4. Structura unui…

|

Structuri de Date Arborescente Implementate Dinamic – Arbore Binar Heap 15

1. Obiectivele lecției: 2. Ce este un heap binar? 3. Avantaje și dezavantaje Avantaje Dezavantaje Eficient pentru accesarea elementelor de maxim/minim. Inserarea și eliminarea implică reorganizarea arborelui. Structura este compactă datorită proprietății de arbore complet. Performanța scade dacă arborele devine dezechilibrat. Util pentru aplicații precum algoritmii de sortare și cozi de priorități. 4. Reprezentarea unui…

|

Ștergerea nodului rădăcină în Min-Heap/Max-Heap 16

1. Concept general: Ștergerea nodului rădăcină dintr-un heap presupune eliminarea elementului care respectă proprietățile heap-ului: Pașii generali pentru ștergerea rădăcinii: 2. Implementarea pentru Max-Heap Heapify-Down în Max-Heap Această funcție rearanjează elementele astfel încât proprietatea Max-Heap să fie restabilită după ștergerea rădăcinii. void heapifyDown(vector<int>& heap, int index) {     int stanga = 2 * index +…

|

Teoria Grafurilor: Grafuri Neorientate – Noțiuni Introdutive 17

1. Obiectivele lecției: 2. Ce este un graf? 3. Elemente fundamentale ale unui graf neorientat 4. Exemple simple de grafuri neorientate 5. Reprezentarea grafurilor neorientate Exemplu pentru un graf cu 4 noduri: 1–2 |   | 4–3 Matricea de adiacență: 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0…

|

Teoria Grafurilor: Grafuri Neorientate – Metode de Reprezentare 19

1. Obiectivele lecției: 2. Ce este un graf neorientat? Un graf neorientat este definit prin: 3. Metode de reprezentare a grafurilor 1. Matricea de adiacență 1–2 |   | 3–4 Matricea de adiacență: 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 #include <iostream> using namespace std; void afisareMatrice(int…