De ce contează?
Un meșter bun nu folosește ciocanul la orice. Ține în trusă șurubelniță, cheie și clește, și alege unealta după cum arată șurubul. La fel stai și tu acum: ai învățat stiva, coada, deque-ul, vectorul și lista înlănțuită. Întrebarea nu mai este „cum funcționează fiecare", ci „pe care o scot din trusă pentru problema asta?". Răspunsul nu vine din ce structură ți-e mai simpatică, ci din ce operații faci cel mai des.
Ideea-cheie
Toate structurile liniare țin o secvență de elemente. Diferența dintre ele nu este
ce stochează, ci ce operații sunt rapide: la ce capăt poți adăuga ieftin, de unde
poți scoate ieftin, dacă poți sări direct la al k-lea element. Alegi structura
uitându-te la operația pe care o repeți de cele mai multe ori și ținând-o pe aceea
rapidă (de obicei O(1)).
Întrebarea-ghid pe care ți-o pui mereu este: la ce capăt adaug? de unde scot? am
nevoie de acces direct la al k-lea element? Răspunsul la aceste trei întrebări îți
arată structura, aproape mecanic.
Structura de date nu se alege după cum „sună", ci după operațiile dominante și capătul la care se întâmplă. Dacă adaugi și scoți de la același capăt, e stivă; dacă adaugi la un capăt și scoți de la celălalt, e coadă; dacă lucrezi la ambele capete, e deque. Capătul decide structura.