Informatică Alte teme
Structuri de date: liste, stive, cozi
Listele, stivele și cozile sunt structuri de date fundamentale în informatică, folosite pentru a stoca și organiza date într-un anumit ordine. O listă este o colecție ordonată de elemente cu acces direct, o stivă funcționează pe principiul ultimul intrat, primul ieșit (LIFO), iar o coadă pe primul intrat, primul ieșit (FIFO). Acestea sunt implementate în limbaje ca Python, Java sau C++.
Liste
- Definiție O listă este o secvență de elemente accesibile prin index. În Python, o listă se declară: lista = [1, 2, 3]. Elementele pot fi de orice tip și pot fi modificate.
- Operații de bază Acces: lista[0] returnează 1 (primul element). Adăugare: lista.append(4) adaugă 4 la sfârșit. Ștergere: lista.pop(1) elimină elementul de la indexul 1 (valoarea 2).
- Exemplu numeric Pentru lista = [10, 20, 30], lista[1] este 20. După lista.append(40), lista devine [10, 20, 30, 40].
Stive
- Definiție O stivă (stack) este o structură LIFO: ultimul element adăugat este primul eliminat. Se aseamănă cu o grămadă de farfurii.
- Operații principale Push: adaugă un element în vârful stivei. Pop: elimină și returnează elementul din vârf. În Python, poți folosi o listă: stiva = [], stiva.append(5) pentru push, stiva.pop() pentru pop.
- Exemplu numeric Stiva goală: []. Push(1): [1]. Push(2): [1, 2]. Pop() returnează 2, stiva devine [1].
Cozile
- Definiție O coadă (queue) este o structură FIFO: primul element adăugat este primul eliminat. Se aseamănă cu o coadă la magazin.
- Operații principale Enqueue: adaugă un element la sfârșitul cozii. Dequeue: elimină și returnează elementul de la început. În Python, folosești collections.deque: din coada import deque, coada = deque(), coada.append(1) pentru enqueue, coada.popleft() pentru dequeue.
- Exemplu numeric Coada goală: deque([]). Enqueue(1): deque([1]). Enqueue(2): deque([1, 2]). Dequeue() returnează 1, coada devine deque([2]).
Folosește liste pentru acces rapid la orice element, stive pentru backtracking (ex: undo în editare), și cozi pentru planificarea sarcinilor (ex: imprimante).