Explică stiva și coada
Definești stiva și coada ca modele de organizare liniară.
LIFO, FIFO, operații și aplicații
Definești stiva și coada ca modele de organizare liniară.
Explici diferența dintre Last In, First Out și First In, First Out.
Identifici adăugarea, eliminarea și starea structurii după o succesiune de operații.
Construiești modele simple și verifici existența elementelor înainte de eliminare.
Care este ideea centrală a lecției?
Stiva este o structură liniară în care ultimul element introdus este primul eliminat: LIFO (Last In, First Out). Eliminarea se face din vârf.
Coada este o structură liniară în care primul element introdus este primul eliminat: FIFO (First In, First Out). Adăugarea se face la sfârșit, iar eliminarea la început.
Modelele sunt utile deoarece regula de acces este diferită. Operația Undo este naturală pentru o stivă, iar o coadă de așteptare este naturală pentru o coadă.
Într-o stivă avem adăugare în vârf și eliminare din vârf. Într-o coadă avem adăugare la sfârșit și eliminare de la început.
Ce idee trebuie reținută înainte de a aplica algoritmul?
Un teanc de farfurii ilustrează LIFO: ultima farfurie pusă este prima luată. O coadă la ghișeu ilustrează FIFO: primul sosit este primul servit.
Stivă: [ ]
Coadă: [ ]
stiva = []
stiva.append(10)
stiva.append(20)
stiva.append(30)
print(stiva.pop())
print(stiva)
Valoarea 30 este eliminată prima. În această lecție, append() și pop() sunt folosite pentru a ilustra modelul; operațiile clasei list vor fi studiate sistematic în Capitolul 8.
coada = [10, 20, 30]
primul = coada[0]
coada = coada[1:]
print(primul)
print(coada)
Valoarea 10 este eliminată prima, respectând regula FIFO.
ALGORITM Stiva
stiva ← goală
pentru fiecare operație execută
dacă este adăugare atunci
adaugă în vârf
dacă este eliminare și stiva nu este goală atunci
elimină vârful
sfârșit pentru
SFÂRȘIT ALGORITM
ALGORITM Coada
coada ← goală
pentru fiecare operație execută
dacă este adăugare atunci
adaugă la sfârșit
dacă este eliminare și coada nu este goală atunci
elimină primul
sfârșit pentru
SFÂRȘIT ALGORITM
Stiva elimină ultimul introdus, nu primul.
Coada elimină primul introdus, nu ultimul.
Înaintea eliminării trebuie verificat dacă există un element.
Sunt reguli de organizare a datelor; Python oferă operațiile prin care putem simula aceste modele.
Stiva este goală. Operațiile sunt: adaugă 5, adaugă 8, adaugă 2, elimină, adaugă 9, elimină. Determinați elementele eliminate și starea finală.
Aplicăm regula LIFO: la fiecare eliminare luăm elementul din vârf.
stiva ← goală
adaugă 5
adaugă 8
adaugă 2
elimină vârful
adaugă 9
elimină vârful
scrie elementele eliminate și starea finală
stiva = []
eliminate = []
stiva.append(5)
stiva.append(8)
stiva.append(2)
if len(stiva) > 0:
eliminate.append(stiva.pop())
stiva.append(9)
if len(stiva) > 0:
eliminate.append(stiva.pop())
print("Eliminate:", eliminate)
print("Stiva finală:", stiva)
| Operație | Stivă | Eliminate |
|---|---|---|
| adaugă 5 | [5] | [] |
| adaugă 8 | [5,8] | [] |
| adaugă 2 | [5,8,2] | [] |
| elimină | [5,8] | [2] |
| adaugă 9 | [5,8,9] | [2] |
| elimină | [5,8] | [2,9] |
Caz normal: operațiile date → se elimină 2 și 9.
Caz-limită: încercare de eliminare din structură goală.
Caz particular: un singur element urmat de eliminare → structura devine goală.
La prima eliminare, 2 este ultimul introdus, deci este scos primul. După adăugarea lui 9, acesta devine noul vârf și este eliminat la a doua operație. Starea finală este [5, 8].
1. Ce înseamnă LIFO?
2. Ce înseamnă FIFO?
3. Care structură respectă regula LIFO?
4. Care structură respectă regula FIFO?
5. Într-o stivă în care s-au adăugat 4, 7, 9, ce element se elimină primul?
6. Într-o coadă în care au intrat A, B, C, cine pleacă primul?
7. Ce trebuie verificat înainte de eliminarea unui element dintr-o structură?
8. Care situație este un exemplu potrivit pentru o coadă?
Sistem de procesare. Simulați o stivă și o coadă pe baza unei succesiuni de operații. Afișați elementele eliminate și starea finală. Testați operații normale, structură goală și un singur element.
Revizuiește activitățile, verifică testele și apoi marchează lecția ca finalizată.