Manual Interactiv: Stivă & Coadă
Ultimul element intrat este primul element care iese.
void adauga(int &vf, int e)
{
if (vf < MAX - 1)
{
vf = vf + 1; // Creștem indicele (Pasul 2)
stiva[vf] = e; // Memorăm elementul (Pasul 3)
}
else
{
cout << "Stiva plina" << endl;
}
}
void sterge(int &vf)
{
if (vf != -1)
{
stiva[vf] = 0; // Curățăm locul (Pasul 2)
vf = vf - 1; // Coborâm vârful (Pasul 3)
}
else
{
cout << "Stiva vida" << endl;
}
}
#include <iostream>
using namespace std;
#define MAX 100
int stiva[MAX];
int vf = -1;
void adauga(int &vf, int e)
{
if (vf < MAX - 1)
{
vf++;
stiva[vf] = e;
cout << "Adaugat: " << e << endl;
}
else
{
cout << "Stiva plina!" << endl;
}
}
void sterge(int &vf)
{
if (vf != -1)
{
cout << "Sters: " << stiva[vf] << endl;
stiva[vf] = 0;
vf--;
}
else
{
cout << "Stiva vida!" << endl;
}
}
void afiseaza(int vf)
{
cout << "Stiva: ";
for(int i=0; i<=vf; i++) cout << stiva[i] << " ";
cout << endl;
}
int main()
{
int opt, val;
do
{
cout << "\n1.Push 2.Pop 3.Afiseaza 0.Exit: ";
cin >> opt;
if(opt==1) { cin>>val; adauga(vf,val); }
else if(opt==2) sterge(vf);
else if(opt==3) afiseaza(vf);
} while(opt!=0);
return 0;
}
Primul venit este primul servit. Adăugăm la ULTIM, ștergem de la PRIM.
void adauga(int &ultim, int e)
{
if (ultim < MAX - 1)
{
ultim = ultim + 1; // Mutăm indicatorul de final (Pasul 2)
coada[ultim] = e; // Scriem elementul (Pasul 3)
}
else
{
cout << "Coada plina" << endl;
}
}
void sterge(int &prim, int ultim)
{
if (prim <= ultim)
{
coada[prim] = 0; // Ștergem elementul (Pasul 2)
prim = prim + 1; // Avansăm linia de start (Pasul 3)
}
else
{
cout << "Coada vida" << endl;
}
}
#include <iostream>
using namespace std;
#define MAX 100
int coada[MAX];
int prim = 0;
int ultim = -1;
void adauga(int &ultim, int e)
{
if (ultim < MAX - 1)
{
ultim++;
coada[ultim] = e;
cout << "Adaugat: " << e << endl;
}
else
{
cout << "Coada plina!" << endl;
}
}
void sterge(int &prim, int ultim)
{
if (prim <= ultim)
{
cout << "Servit: " << coada[prim] << endl;
coada[prim] = 0;
prim++;
}
else
{
cout << "Coada vida!" << endl;
}
}
void afiseaza(int prim, int ultim)
{
if(prim > ultim) cout << "Coada goala";
else {
cout << "Coada: ";
for(int i=prim; i<=ultim; i++) cout << coada[i] << " ";
}
cout << endl;
}
int main()
{
int opt, val;
do
{
cout << "\n1.Add 2.Del 3.Show 0.Exit: ";
cin >> opt;
if(opt==1) { cin>>val; adauga(ultim,val); }
else if(opt==2) sterge(prim, ultim);
else if(opt==3) afiseaza(prim, ultim);
} while(opt!=0);
return 0;
}