Sunteți pe pagina 1din 3

Clasa a XI- a B

Informatică

Aplicații - Stive și Cozi cu implementare statică


1 Obiectivele laboratorului
 Înțelegerea conceptului de funcționare si implementarea de stive și cozi.
 Implementarea unor funcții individuale de lucru cu acestea.

2 Ce este o stivă?
2.1 Definiție
O stivă reprezintă o listă cu structuri de date de tipul: Last-In-First-Out (LIFO).
Un exemplu comun ar fi un teanc de cărți: tot punem cărți pe o masă, dar în momentul când vrem
să le ridicăm începem cu ultima, pusă deasupra teancului.

2.2 Operații cu stive


Definim structura astfel:

struct stack{
int s[size];
int top = -1;
} st;

 Verificăm dacă stiva e plină sau goală


int st_full(){ //int st_empty{
if(st.top>=size - 1) //if(st.top==-1)
return 1;
else
return 0;}
Clasa a XI- a B
Informatică

 Adăugarea
void push(int item){
st.top++;
st.s[st.top]=item;}

 Ștergerea
int pop(){
int item;
if(st_empty()) //presupunem ca nu exista elemente
return -1; //cu valoarea -1
item = st.s[st.top];
st.top--;
return (item);}

Observații
1.Când introducem elemente într-o stivă,trebuie să incrementăm top-ul și apoi să adăugam
elementul.
2.Când ștergem un element,trebuie întâi să ștergem elementul și apoi să decrementăm top-ul.

3 Ce este o coadă?
3.1 Definiție

O coadă este o structură de date ce modelează un buffer de tip First-In-First-Out (FIFO).Astfel,


primul element introdus în coadă va fi și primul care va fi scos din coadă.
Clasa a XI- a B
Informatică

3.2 Operații cu cozi


Definim structura astfel:

struct queue{
int queue[size];
int rear = -1;
int front = 0;
}Q;

 IsEmpty - întoarce 0 dacă coada este goală;1 dacă are cel puțin un element.

int Qempty(){
if(Q.front > Q.rear)
return 1;
return 0;}

 Enqueue / Adăugarea - adaugă un element (entitate) în coadă.Adăugarea se poate face


doar la sfârșitul cozii.

void Qinsert(int item){


Q.rear++;
Q.queue[Q.rear] = item;}

 Dequeue/ștergere - șterge un element din coadă și îl returnează.Ștergerea se poate face


doar la începutul cozii.

int Qdelete(){
int item;
if( Qempty() ) //in acest caz, alegem o valoare de return
return -1; // ce NU poate fi confundata cu un element
//presupunem ca NU exista niciun element cu valoarea -1
else {
item = Q.queue[Q.front];
Q.front ++;
return item; }}

Exerciții:
1. Se citesc n numere naturale a1, a2, ...., an. Se cere să se realizeze programul care creează o
stivă, afișează elementele introduse și apoi extrage doar elementele pare. La sfârșit se vor
afișa elementele rămase în stivă.
2. Se introduc pe rând înt-o coadă n caractere alfabetice. Se cere să se realizeze programul care
creează coada și afișează vocalele din coadă.

S-ar putea să vă placă și