This shows you the differences between two versions of the page.
sd-ca:laboratoare:lab-04 [2025/03/23 22:35] andrei.pirlea |
sd-ca:laboratoare:lab-04 [2025/03/26 12:47] (current) radu.marin0508 [Double ended queue - Dequeue] |
||
---|---|---|---|
Line 199: | Line 199: | ||
===== Alte tipuri de coadă ===== | ===== Alte tipuri de coadă ===== | ||
- | ==== Double ended queue - Dequeue ==== | + | ==== Double ended queue - Deque ==== |
- | Într-o coadă obișnuită accesul la elemente este de tip FIFO - elementele sunt introduse pe la un capăt și scoase la celălalt capăt. În cazul unei Dequeue, se permit ambele operații, la ambele capete. Astfel, în capătul **head** se pot atât introduce, cât și extrage elemente. La fel și în cazul capătului **tail**. Se observă că cele două structuri prezentate în acest laborator (stiva și coada) sunt particularizări ale structurii de date Dequeue. | + | Într-o coadă obișnuită accesul la elemente este de tip FIFO - elementele sunt introduse pe la un capăt și scoase la celălalt capăt. În cazul unei Deque, se permit ambele operații, la ambele capete. Astfel, în capătul **head** se pot atât introduce, cât și extrage elemente. La fel și în cazul capătului **tail**. Se observă că cele două structuri prezentate în acest laborator (stiva și coada) sunt particularizări ale structurii de date Dequeue. |
- | Dintre cele 4 operații de adaugare/ștergere puse la dispoziție de o dequeue, atât stiva cât și coada folosesc doar 2 (push_front() și pop_front() în cazul stivei, respectiv push_back() și pop_front() în cazul cozii). Desigur, dequeue permite vizualizarea elementelor din ambele capete ale cozii: front() și back(). | + | Dintre cele 4 operații de adaugare/ștergere puse la dispoziție de o deque, atât stiva cât și coada folosesc doar 2 (push_front() și pop_front() în cazul stivei, respectiv push_back() și pop_front() în cazul cozii). Desigur, deque permite vizualizarea elementelor din ambele capete ale cozii: front() și back(). |
==== Priority Queue ==== | ==== Priority Queue ==== | ||
Line 336: | Line 336: | ||
<note> | <note> | ||
- | Trebuie să vă creați cont de [[https://lambdachecker.io | Lambda Checker]], dacă nu v-ați creat deja, pe care îl veți folosi la SD pe toată durata semestrului. Aveti grija sa selectati contestul corect la submit, si anume **[[https://beta.lambdachecker.io/contest/31 |SD-CA-LAB-04 Stiva si Coada]]** | + | Trebuie să vă creați cont de [[https://www.devmind.ro/ | Devmind]], dacă nu v-ați creat deja, pe care îl veți folosi la SD pe toată durata semestrului. |
</note> | </note> | ||
- | 1) [**3p**] Implementați, plecând de la scheletul de cod, stiva. **Atenție!** În implementarea stivei se va folosi **lista simplu înlănțuită** detaliată în secțiunea de mai sus. (problema **Stack Implementation** pe LambdaChecker) | + | 1) [**3.5p**] Implementați, plecând de la scheletul de cod, stiva. **Atenție!** În implementarea stivei se va folosi **lista simplu înlănțuită** detaliată în secțiunea de mai sus. (problema **Stack Implementation** pe Devmind) |
- | 2) [**3p**] Implementați, plecând de la scheletul de cod, coada. **Atenție!** Implementarea are la baza un **vector circular** despre care puteți citi mai multe în secțiunea de mai sus. (problema **Queue Implementation** pe LambdaChecker) | + | 2) [**3.5p**] Implementați, plecând de la scheletul de cod, coada. **Atenție!** Implementarea are la baza un **vector circular** despre care puteți citi mai multe în secțiunea de mai sus. (problema **Queue Implementation** pe Devmind) |
- | + | ||
- | 3) [**1p**] Rezolvati problema **Lucrări**. O veti gasi pe LambdaChecker in contestul Laborator 5 SD. | + | |
(**Bonus**) [**2p**] Implementați operațiile elementare ale unei stive folosind două cozi. Problema admite două versiuni: una în care operația pop este eficientă, iar cealaltă în care operația push este eficientă. (pentru a primi punctajul, implementați soluția local, apoi urcați codul pe GitHub) | (**Bonus**) [**2p**] Implementați operațiile elementare ale unei stive folosind două cozi. Problema admite două versiuni: una în care operația pop este eficientă, iar cealaltă în care operația push este eficientă. (pentru a primi punctajul, implementați soluția local, apoi urcați codul pe GitHub) |