Sunteți pe pagina 1din 3

STIVA.

COADA

STIVA

Stiva este o structura de date omogene, implementarea sa din punct de vedere fizic fiind realizata
prin utilizarea altor structuri de date.

Operatii de baza cu structura de tip stiva:


 adaugarea unui element
 extragerea unui element

Modalitatea de implementare a operatiilor este data de disciplina de acces: LIFO – Last In First Out.
Toate inserarile (push) si extragerile (pop) sunt realizate la acelasi capat al structurii de
implementare, denumit varful stivei.

Exemplu de implementari ale operatiilor push si pop, utilizand ca structura de implementare lista


simpla [...]. Structura elementelor stivei este formata dintr-o valoare de tip int si adresa urmatorului
element din structura.

struct Nod
{
int val;
Nod* next;
};

void push(Nod* & prim, int v)


{
Nod* nou=new Nod;
nou->val=v;
nou->next=prim;
prim=nou;
}

void pop(Nod*& vf)


{
if(vf)
{
Nod *aux;
aux=vf;
vf=vf->next;
delete aux;
}
}

Coada pastreaza caracteristicile structurii de tip stiva, mai putin aspectele de implementare a


operatiilor de inserare si extragere. Astfel, modalitatea de implementare a operatiilor este data de
disciplina de acces: FIFO – First In First Out. Toate inserarile (put) sunt efectuate la un capat al
structurii de implementare fizica, iar extragerile din coada (get) sunt realizate la celalalt capat al
structurii.

In exemplul de mai jos sunt prezentate implementari ale operatiilor put si get, utilizand ca structura
suport lista simpla [...]. Structura unui element al cozii este formata dintr-o valoare de tip int si
adresa nodului succesor din structura de tip coada.

struct Nod
{
int val;
Nod* next;
};

void push(Nod* &prim,int v)


{
Nod* nou=new Nod;
nou->val=v;
nou->next=NULL;
if(prim)
{
Nod* t=prim;
while(t->next)
t=t->next;
t->next=nou;
}
Else
{
prim=nou;
}
}

void pop(Nod* &prim)


{
if(prim)
{
int v=prim->val;
Nod* t=prim;
prim=prim->next;
delete t;
}
}

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