Înapoi la blog
#bacalaureat#structuri de date#C++#informatică

Structuri de date esențiale pentru Bacalaureatul la Informatică

Tablouri, stive, cozi și liste înlănțuite explicate clar, cu exemple în C++. Ce trebuie să știi pentru subiectele de la Bac și cum le folosești corect.

La Bacalaureatul de Informatică, structurile de date apar peste tot: în subiectele cu tablouri, în problemele de prelucrare a șirurilor, în algoritmii de sortare. Le înțelegi o dată bine, și o mare parte din examen devine accesibilă.

De ce contează structurile de date

O structură de date e modul în care organizezi informația în memorie ca să o poți folosi eficient. Alegerea potrivită poate face un program de zece ori mai rapid și mai ușor de scris.

1. Tabloul (array)

Cea mai folosită structură la Bac. Un șir de elemente de același tip, stocate unul după altul, accesibile după index.

int v[5] = {10, 20, 30, 40, 50};
cout << v[2];   // afișează 30
  • Accesul după index e O(1) — instant.
  • Inserarea la mijloc e O(n) — trebuie să muți elementele.

Tablourile bidimensionale (matrice) sunt și ele un clasic:

int a[3][3];
for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; j++)
        a[i][j] = i * 3 + j;

2. Stiva (stack)

O structură LIFOLast In, First Out. Ultimul element pus e primul scos. Gândește-te la un teanc de farfurii.

Operații:

  • push — adaugi în vârf;
  • pop — scoți din vârf;
  • top — vezi vârful fără să-l scoți.
#include <stack>
stack<int> s;
s.push(1);
s.push(2);
cout << s.top();   // 2
s.pop();
cout << s.top();   // 1

Stiva e perfectă pentru: verificarea parantezelor, evaluarea expresiilor, parcurgeri în adâncime.

3. Coada (queue)

O structură FIFOFirst In, First Out. Primul venit, primul servit. Exact ca o coadă la magazin.

#include <queue>
queue<int> q;
q.push(1);
q.push(2);
cout << q.front();   // 1
q.pop();
cout << q.front();   // 2

Coada e folosită în parcurgerea pe niveluri (BFS) și în simulări.

4. Lista înlănțuită (linked list)

Spre deosebire de tablou, elementele nu sunt unul lângă altul în memorie. Fiecare element (nod) reține valoarea și o adresă către următorul.

struct Nod {
    int valoare;
    Nod* urmator;
};
  • Inserarea/ștergerea e O(1) dacă ai nodul.
  • Accesul după poziție e O(n) — trebuie să mergi din nod în nod.

Cum alegi structura potrivită

Ai nevoie de...Folosește
Acces rapid după indexTablou
Ultimul-intrat-primul-ieșitStivă
Primul-intrat-primul-ieșitCoadă
Inserări/ștergeri deseListă înlănțuită

Greșeli des întâlnite la Bac

  • Depășirea limitelor tabloului — accesezi v[n] când indicii merg de la 0 la n-1.
  • Confuzia între stivă și coadă — atenție la ordinea de ieșire.
  • Uiți să tratezi cazul structurii goale (stivă/coadă fără elemente).

Sfat de examen: desenează structura pe ciornă înainte să scrii cod. Vizualizarea elimină jumătate din greșeli.

Concluzie

Tablou, stivă, coadă, listă — astea patru acoperă cea mai mare parte din ce-ți cere Bacul. Exersează fiecare cu probleme mici până devin reflex.

La ByteSchool pregătim elevii pentru Bac cu exact aceste fundamente, explicate de ingineri care le folosesc zilnic în Big Tech.