This shows you the differences between two versions of the page.
sd-ca:laboratoare:laborator-04 [2015/03/19 12:01] alexandru.farcasanu [Exercitii] |
sd-ca:laboratoare:laborator-04 [2016/03/08 08:57] (current) darius.neatu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 04 - Stive ====== | + | ====== Articol 4 - Stive ====== |
- | Responsabili: | + | |
- | * [[ddcdimix10@gmail.com | Dragoș Dimitriu]] | + | |
- | * [[gabi.cristache@gmail.com | Gabi Cristache]] | + | |
===== Obiective ===== | ===== Obiective ===== | ||
- | În urma parcurgerii acestui laborator studentul va fi capabil să: | + | În urma parcurgerii acestui articol studentul va fi capabil să: |
*înțeleagă principiul de funcționare al unei stive | *înțeleagă principiul de funcționare al unei stive | ||
*implementeze o stivă folosind un vector pentru stocarea elementelor | *implementeze o stivă folosind un vector pentru stocarea elementelor | ||
Line 30: | Line 28: | ||
O **listă înlănțuită** este o structură de date folosită pentru a stoca un set de elemente folosind zone de memorie discontinue. Listele vor fi studiate în cadrul [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-06|laboratorului 6]]. | O **listă înlănțuită** este o structură de date folosită pentru a stoca un set de elemente folosind zone de memorie discontinue. Listele vor fi studiate în cadrul [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-06|laboratorului 6]]. | ||
- | În cadrul acestui laborator, ne vom concentra asupra implementării unei stive cu ajutorul unui vector de stocare. | + | În cadrul acestui articol, ne vom concentra asupra implementării unei stive cu ajutorul unui vector de stocare. |
==== Implementare cu vector ==== | ==== Implementare cu vector ==== | ||
Line 171: | Line 169: | ||
EROARE: forma postfixată nu este corectă | EROARE: forma postfixată nu este corectă | ||
</code> | </code> | ||
+ | |||
+ | <hidden> | ||
+ | |||
===== Exercitii ===== | ===== Exercitii ===== | ||
- | 1) [**3p**] Pornind de la header-ul definit [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-03#implementare_cu_vector|anterior]], realizați implementarea structurii de date //stivă//. | + | 1) [**2p**] Pornind de la header-ul definit [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-04#implementare_cu_vector|anterior]], realizați implementarea structurii de date //stivă//. |
*constructor și destructor | *constructor și destructor | ||
- | *[**1p**] metoda push | + | *[**0.5p**] metoda push |
- | *[**1p**] metoda pop | + | *[**0.5p**] metoda pop |
*[**0.5p**] metoda peek | *[**0.5p**] metoda peek | ||
*[**0.5p**] metoda isEmpty | *[**0.5p**] metoda isEmpty | ||
- | 2) [**2p**] Determinați dacă un șir format din caracterele ''('', ''['', '')'', '']'' este corect parantezat. | + | 2) [**5p**] Implementați conversia unei expresii din formă infixată în formă postfixată. (Pentru simplitate puteți considera că numerele conțin o singură cifră). |
- | 3) [**3p**] Implementaţi problema Turnurilor din Hanoi folosind stive explicit. | + | 3) [**5p**] Implementați evaluarea unei expresii în formă postfixată. (Pentru simplitate puteți considera că numerele conțin o singură cifră). |
- | Problema Turnurilor din Hanoi: | ||
- | Jocul este format din trei tije și un număr variabil de discuri, de diferite mărimi, care pot fi poziționate pe oricare din cele trei tije. Jocul începe având discurile așezate în stivă pe prima tijă, în ordinea mărimii lor, astfel încât să formeze un turn. Scopul jocului este acela de a muta întreaga stivă de pe o tijă pe alta, respectând următoarele reguli: | ||
- | * Doar un singur disc poate fi mutat, la un moment dat. | + | |
- | * Fiecare mutare constă în luarea celui mai de sus disc de pe o tija și glisarea lui pe o altă tijă, chiar și deasupra altor discuri care sunt deja prezente pe acea tijă. | + | 4) [**2p**] Verificati daca un sir format doar din paranteze rotunde este valid. |
- | * Un disc mai mare nu poate fi poziționat deasupra unui disc mai mic. | + | |
- | <hidden> | ||
1) [**3p**] Pornind de la header-ul definit [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-03#implementare_cu_vector|anterior]], realizați implementarea structurii de date //stivă//. | 1) [**3p**] Pornind de la header-ul definit [[http://ocw.cs.pub.ro/courses/sd-ca/laboratoare/laborator-03#implementare_cu_vector|anterior]], realizați implementarea structurii de date //stivă//. | ||
*constructor și destructor | *constructor și destructor | ||
Line 226: | Line 223: | ||
</hidden> | </hidden> | ||
===== Interviu ===== | ===== Interviu ===== | ||
- | Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship, part-time, full-time, etc.) din materia prezentată în cadrul laboratorului. | + | Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship, part-time, full-time, etc.) din materia prezentată în cadrul cursului. |
- Implementați, folosind un singur vector, 3 stive | - Implementați, folosind un singur vector, 3 stive |