Mavrodin Tudor
#include <iostream>
using namespace std;
void citire(int&, int[]);
void afisare(int, int[]);
void adaugare(int&, int[], int, int);
void stergere(int&, int[], int);
void adaugare_stiva(int &vf, int S[], int x);
void stergere_stiva(int &vf, int S[]);
void adaugare_coada(int &sf, int C[], int x);
void stergere_coada(int &inc, int sf, int C[]);
void afisare_coada(int inc, int sf, int C[]);
void lista(int n, int v[])
int x, ok=1, elem, poz;
cout<<"citeste elementele:"<<'\n';
citire(n, v);
do
cout<<"1 pentru afisare, 2 pentru adaugare, 3 pentrue stergere:"<<'\n';
cin>>x;
switch (x)
case 1: afisare(n, v); break;
case 2: {cout<<"introduce x si k: "; cin>>elem>>poz; adaugare(n, v, elem, poz); break;}
case 3: {cout<<"introduce k: "; cin>>poz; stergere(n, v, poz); break;}
default: cout<<"eroare";
cout<<"vrei sa continui? 1/0: "; cin>>ok;
}while (ok);
void stiva(int n, int S[])
1
Mavrodin Tudor
int vf, x, ok=1, elem;
cout<<"citeste elementele:"<<'\n';
citire(n, S);
vf=n-1;
do
cout<<"1 pentru afisare, 2 pentru adaugare, 3 pentrue stergere:"<<'\n';
cin>>x;
switch (x)
case 1: afisare(vf+1, S); break;
case 2: {cout<<"introduce x: "; cin>>elem; adaugare_stiva(vf, S, elem); break;}
case 3: stergere_stiva(vf, S); break;
default: cout<<"eroare";
cout<<"vrei sa continui? 1/0: "; cin>>ok;
}while(ok);
void coada(int n, int C[])
int inc, sf, x, elem, ok=1;
cout<<"citeste elementele:"<<'\n';
citire(n, C);
inc=0; sf=n-1;
do
cout<<"1 pentru afisare, 2 pentru adaugare, 3 pentrue stergere:"<<'\n';
cin>>x;
switch (x)
2
Mavrodin Tudor
case 1: afisare_coada(inc, sf, C); break;
case 2: {cout<<"introduce x: "; cin>>elem; adaugare_coada(sf, C, elem); break;}
case 3: stergere_coada(inc, sf, C); break;
default: cout<<"eroare";
cout<<"vrei sa continui? 1/0: "; cin>>ok;
}while(ok);
int main()
int n, v[100], x;
cout<<"1 pentru lista, 2 pentru stiva, 3 pentru coada"<<'\n'; cin>>x;
switch (x)
case 1: lista(n, v); break;
case 2: stiva(n, v); break;
case 3: coada(n, v); break;
default: cout<<"eroare";
return 0;
void citire(int &n, int v[])
cin>>n;
for (int i=0; i<n; i++) cin>>v[i];
void afisare(int n, int v[])
for(int i=0; i<n; i++) cout<<v[i]<<' ';
cout<<'\n';
3
Mavrodin Tudor
void adaugare(int &n, int v[], int x, int k)
int i;
if(n==100){cout<<"eroare"; return;}
for (i=n-1; i>=k; i--) v[i+1]=v[i];
v[k]=x; n++;
void stergere(int &n, int v[], int k)
int i;
if (n==-1){cout<<"eroare"; return;}
for (i=k; i<n-1; i++) v[i]=v[i+1];
n--;
void adaugare_stiva(int &vf, int S[], int x)
if (vf==100){cout<<"eroare"; return;}
S[++vf]=x;
void stergere_stiva(int &vf, int S[])
if (vf==-1){cout<<"eroare"; return;}
vf--;
void adaugare_coada(int &sf, int C[], int x)
if(sf==100){cout<<"eroare"; return;}
C[++sf]=x;
void stergere_coada(int &inc, int sf, int C[])
4
Mavrodin Tudor
if(sf-inc==-1){cout<<"eroare"; return;}
inc++;
void afisare_coada(int inc, int sf, int C[])
for (int i=inc; i<=sf; i++) cout<<C[i]<<' ';
cout<<'\n';