Transcript Laborator 3

Laborator 3
Liste, stive si cozi
- partea I -
Stive si cozi implementate cu
vectori
Stiva
- Stuctura LIFO
- varful stivei – top
- is_empty, is_full
- push, pop
Coada
- Stuctura FIFO
- inceput, sfarsit coada – front si rear
- is_empty, is_full
- insert, remove
Stive si cozi implementate cu
vectori
Stiva (principiu)
10
5
3
4
6
1
5
5
+
10
->
push(10)
3
pop() ->
3
4
4
6
6
1
->10
1
Stiva transpusa in vectori
- stackArrary[maxSize]
- push[++top]
- return pop[top--]
- peek[top]
- isEmpty()
- isFull()
pop() ->
3
4
6
->5
1
Stive si cozi implementate cu
vectori
Stive si cozi implementate cu
vectori
Cozi (principiu)
1
6
4
3
5
remove() ->
->5
+ 10 ->
insert(10)
4
3
5
1
6
4
3
5
10
Coada transpusa in vectori
- queArray [maxSize]
- insert[++rear]
- return remove[front++]
- peekFront[front]
- isEmpty()
- isFull()
10
remove() ->
->1
6
4
3
5
10
Stive si cozi implementate cu
vectori
Stive si cozi implementate cu
vectori
De facut:
1. De implementat clasa Stack, cu constructorul Stack(n), unde n este
dimensiunea maxima. De adaugat valorile 5, 10, 20, 15, 0, 50. De scos
pas cu pas aceste valori. De afisat elementul din varful stivei
2. De implementat clasa Coada, De adaugat valorile 5, 10, 20, 15, 0, 50.
De scos pas cu pas aceste valori.
3. De realizat un program care verifica consistenta unei expresii
Exemplu:
- c[d] // corect
- a{b[c]d}e // corect
- a{b(c]d}e // incorect; ] nu se potriveste cu (
- a[b{c}d]e} // incorect, nimic nu se potriveste cu } finala
Indicatii: Se testeaza caracter cu caracter, parantezele deschise se introduc intr-o stiva;
cand intalnesc paranteze deschise efectuez un pop pe stiva si compar cele doua paranteze.
Stive si cozi implementate cu
vectori
Exemple utile:
- constructor Stiva:
public StackX(int s) // constructor {
maxSize = s; // set array size
stackArray = new double[maxSize]; // create array
top = ??????; // no items yet. Cat trebuie sa fie top initial?}
- constructor Coada:
public Queue(int s) // constructor {
maxSize = s;
queArray = new int[maxSize];
front = 0;
rear = -1;
nItems = 0;}
- metoda pop:
public int pop() // take item from top of stack
{
return stackArray[top--];
}