STRUCTURI DE DATE, ALGORITMI ȘI TEHNICI DE PROGRAMARE

   cu aplicații în limbajul Java



prof.dr.ing. Severin BUMBARU
Universitatea "Dunărea de Jos" din Galați

CUPRINSUL

 1. Introducere
Obiectivele disciplinei. Date primitive și structuri de date. Algoritmi. Complexitatea algoritmilor. Operații cu tablouri
 2. Recursivitate
Recursia. Comparație între iterație și recursie. Algoritmi recursivi de sortare a tablourilor. Clasa Arrays în Java API
 3. Colecții (1)
Conceptele de colecție, mulțime și iterator. Liste. Liste stive și cozi implementate ca tablouri.
 4. Colecții (2)
Liste înlănțuite și realizarea lor în Java. Coada și stiva implementate prin liste înlănțuite.Liste recursive. Liste în interfața grafică.
 5. Colecții (3)
Tabele de dispersie. Clasa HashSet. Mapări. Interfețele Map și Map.Entry.Clase de mapări în pachetul java.util implementate ca tabele de dispersie. Clasa Collections.
 6. Arbori (1)
Conceptul de arbore. Arbori binari. Coada de priorități și arborele de selecție. Sortarea tablourilor prin metoda HeapSort.
 7. Arbori (2)
   Implementarea arborilor binari și a arborilor generali. Traversarea arborilor.
 8. Arbori (3)
Arbori de căutare. Arbori de căutare echilibrați. Clase de arbori în pachetele de clase din Java SDK.
 9. Grafuri (1)
Grafuri. Noțiuni generale. Reprezentări ale grafurilor pe calculator. Explorarea grafurilor.
10. Grafuri (2)
Arbori de acoperire. Componente tare conexe. Sortare topologică.
11. Tehnici de programare (1)
Divide et impera, backtracking.
12. Tehnici de programare (2)
Greedy, programare dinamică

      Bibliografie