Pentru că aveam nevoie la lecție de o implementare pentru stack și coada, le-am implementat în C.
Implementarea stack se afla în namespace-ul dis, (dan iftodi stack):
Definiția structurii pentru stack este:
[cpp]
typedef struct stack
{
void *data;
struct stack* prev;
} stack;
[/cpp]
Putem pastra adresa catre orice fel de date pe stack, trebuie doar sa fim atenti sa facem cast.
Exemplu de utilizare pentru stack:
[cpp]
#include „stack.h”
using namespace dis;
int main(int argc, char* argv[])
{
//Declaram 2 variabile integer care le vom adauga in stack
int i1=1;
int i2=2;
//O variabila unde v-om pastra datele extrase din stack
int t=0;
//Adaugam in stack si facem cast catre void*
push( (void*) &i1 );
push( (void*) &i2 );
//stergem primul ultimul element adaugat pe stack si il salvam in t
t = *((int*) pop());
//Afisam elementul extras
printf(„%i „,t);
//Extragem urmatorul element si il salvam in t
t = *((int*) pop());
//Afisam elementul extras
printf(„%i „,t);
//Verificam daca stack-ul este gol, 1 (true) – daca e gol, 0 (false) – daca nu e gol
printf(„Empty: %i”,isEmpty());
return 0;
}
[/cpp]
Implementarea stack se afla în namespace-ul diq, (dan iftodi queue).
Definitia pentru structura queue este:
[cpp]
typedef struct queue
{
void *data;
struct queue *next;
} queue;
[/cpp]
Putem pastra adresa catre orice tip de date in coada, trebuie doar ca si la stack sa facem cast.
Exemplu de utilizare pentru queue (coada):
[cpp]
#include „queue.h”
using namespace diq;
int main(int argc, char* argv[])
{
//Declaram 2 variabile integer care le vom adauga in coada
int i1=1;
int i2=2;
//O Variabila unde vom pastra datele extrase din coada
int t=0;
//Adauga in coada variabile i1 si i2 (facem cast in void*)
insert( (void*) &i1 );
insert( (void*) &i2 );
//Stergem ultimul element adaugat din coada si pastram valoarea in t
t = *((int*) del());
//Afisam elementul
printf(„%i „,t);
//Stergem ultimul element din coada si pastram valoarea in t
t = *((int*) del());
//Afisam elementul
printf(„%i „,t);
//Verificam daca lista e goala, 1 (true) – daca e goala, 0 (false) – daca nu e goala
printf(„Empty: %i”,isEmpty());
return 0;
}
[/cpp]
Download:
[wpdm_file id=1 title=”true” desc=”true”]
[wpdm_file id=2 title=”true” desc=”true”]