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-1
dacă stiva e vidăEmpty()
– returnează 1 dacă stiva este vidă, sau 0 în caz contrarMax()
– returnează valoarea maximă dintre toate elementele din stivă, sau-1
dacă 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