Exerciții SDA

De la WikiLabs

Vectori

  1. Realizați un program care să implementeze o listă inteligentă de valori folosind vectori. Scrieți funcții pentru:
    • adăugarea unui element la sfărșitul listei;
    • adăugarea unui element la o poziție specificată din listă;
    • eliminarea unui element de la o poziție specificată din listă;
    • căutarea unui element în listă;
    • sortarea listei cu un algoritm eficient - O(n*logn);
  2. Realizați un program care să implementeze o listă inteligentă de valori sortate folosind vectori (lista trebuie menținută sortată la orice modificare). Scrieți funcții pentru:
    • adăugarea unui element folosind un algoritm eficient - O(logn) pentru identificarea poziției corecte;
    • eliminarea unui element de la o poziție specificată din listă;
    • căutarea unui element în listă folosind un algoritm eficient - O(logn);
  3. Realizați o structură de tip coadă (FIFO) de șiruri de caractere folosind vectori. Dimensiunea maximă a cozii este specificată inițial și nu se face realocare. Scrieți funcții pentru:
    • adăugarea unui element în coadă;
    • citirea unui element din coadă;
    • interogarea numărului de elemente din coadă;
  4. Realizați o structură de tip stivă (LIFO) de valori de tip float folosind vectori. Dimensiunea maximă a stivei este specificată inițial și nu se face realocare. Scrieți funcții pentru:
    • adăugarea unui element în stivă;
    • citirea unui element din stivă;
    • interogarea numărului de elemente din stivă;
  5. Dându-se un text, realizați o histogramă a caracterelor din text (afișați numărul de apariții pentru fiecare caracter).

Liste simplu și dublu înlănțuite

  1. Realizați un program care să implementeze o listă inteligentă de valori folosind înlănțuirea dublă. Scrieți funcții pentru:
    • adăugarea unui element la sfărșitul listei;
    • adăugarea unui element la o poziție specificată din listă;
    • eliminarea unui element de la o poziție specificată din listă;
    • căutarea unui element în listă;
    • sortarea listei cu un algoritm eficient - O(n*logn);
    • printarea valorilor din listă pe ecran folosind o funcție iterativă;
  2. Realizați un program care să implementeze o listă inteligentă de valori sortate folosind înlănțuirea simplă (lista trebuie menținută sortată la orice modificare). Scrieți funcții pentru:
    • adăugarea unui element folosind un algoritm eficient - O(logn) pentru identificarea poziției corecte;
    • eliminarea unui element de la o poziție specificată din listă;
    • căutarea unui element în listă;
    • printarea valorilor din listă pe ecran folosind o funcție recursivă;
  3. Realizați o structură de tip coadă (FIFO) de șiruri de caractere folosind înlănțuirea simplă. Nu există o dimensiune maximă a cozii. Scrieți funcții pentru:
    • adăugarea unui element în coadă;
    • citirea unui element din coadă;
    • interogarea numărului de elemente din coadă;
  4. Realizați o structură de tip stivă (LIFO) de valori de tip float folosind înlănțuirea simplă. Nu există o dimensiune maximă a stivei. Scrieți funcții pentru:
    • adăugarea unui element în stivă;
    • citirea unui element din stivă;
    • interogarea numărului de elemente din stivă;