Definiți în C++ clasa Stiva care are următoarea structură:
class Stiva
{
private:
// variabile membre
public:
// depune valoarea x in stiva
void Push(int x)
{
// TO DO
}
// elimina un element din stiva daca stiva nu e vida
void Pop()
{
// TO DO
}
// returneaza varful stivei
// daca stiva este vida, returneaza -1
int Top()
{
// TO DO
}
// returneaza valoarea maxima din stiva
// daca stiva este vida, returneaza -1
int Max()
{
// TO DO
}
// returneaza 1 daca stiva este vida
// returneaza 0 daca stiva nu e vida
int Empty()
{
// TO DO
}
};
Clasa va implementa stive de numere naturale în care se definesc operațiile:
Push(x)– adaugaxîn stivăPop()– elimină elementul din vârful sivei dacă nu este vidăTop()– returnează vârful stivei dacă stiva nu e vidă, sau-1dacă stiva e vidăEmpty()– returnează 1 dacă stiva este vidă, sau 0 în caz contrarMax()– returnează valoarea maximă dintre toate elementele din stivă, sau-1dacă stiva este vidă
Cerinţa
Definiți clasa Stiva. Aceasta va fi integrată într-un program de forma:
#include <bits/stdc++.h>
using namespace std;
// aici va aparea definitia scrisa de voi a clasei Stiva
int main()
{
Stiva w;
w.Push(4);
w.Push(2);
w.Push(5);
w.Push(1);
cout << w.Top() << " " << w.Max() << "\n"; // afiseaza 1 5
w.Pop();
w.Pop();
cout << w.Top() << " " << w.Max() << "\n"; // afiseaza 2 4
return 0;
}
Restricţii şi precizări
- Numele clasei este
Stiva - Puteți defini ce variabile membre doriți, dar numai funcțiile membre descrise mai sus vor fi apelate