Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int MaxS = 5; // veličina niza/steka
- int VelS; // ova promjenjljiva će predstavljati trenutnu poziciju u steku
- typedef int TipS; // pravimo sinonim za tip tako da u budućoj izmjeni tipa steka mijenjamo samo ovu liniju
- TipS niz[MaxS]; // inicijalizujemo niz veličine MaxS tipa TipS
- void Iniciraj() {
- VelS = 0; // inicijalizujemo stek poziciju na 0
- }
- void PushMax(TipS element) {
- if(VelS == MaxS) // provjeravamo je li stek pun
- cout << "Greska! Stek je pun!" << endl; // ako jeste ispisujemo grešku
- else { // inače ...
- int najveci = niz[0]; // inicijalizujemo var. najveci na prvi element (može doći do promjene kroz for petlju)
- for(int i = 1; i < VelS; i++) // petlja se izvršava od niz[1] do najveće pozicije u steku
- if(niz[i] > najveci) // upoređujemo svaki element sa trenutnim najvećim
- najveci = niz[i]; // ako je trenutni element niz[i] veći od trenutnog najvećeg, on postaje najveći
- if(element > najveci) { // sada element koji želimo dodati upoređujemo sa prethodno dobijenim najvećim elementom
- niz[VelS] = element; // ako jeste veći dodajemo ga na trenutnu poziciju VelS
- VelS ++; // povećavamo VelS tj. idemo za jednu poziciju više u steku
- cout << "Uspjesno ste dodali element u stek! " << element << endl; // ispisujemo poruku i element
- }
- else // inače ...
- cout << "Greska! Element nije veci od najveceg! " << endl; // ispisujemo grešku ako element nije veći od najvećeg
- }
- }
- void Pop2() {
- if(VelS == 0) // provjeravamo je li stek prazan, ako jeste
- cout << "Greska! Stek je prazan!" << endl; // ispisujemo grešku i završavamo program
- else { // inače ...
- if(VelS > 1 && niz[VelS - 1] > 0 && niz[VelS - 2] > 0) { // provjeravamo da li stek ima minimum dva elementa te (ako postoje) jesu li oba veća od 0, odnosno pozitivna
- cout << "Uspjesno ste izbacili dva elementa iz steka! " << niz[VelS - 1] << " i " << niz[VelS - 2] << endl; // ispisujemo poruku da smo uspješno "izbrisali" elemente
- VelS -= 2; // kada ih ispišemo umanjujemo VelS za 2 (prividno ih brišemo iako se oni i dalje nalaze u nizu/steku)
- }
- else { // inače ...
- cout << "Uspjesno je izbacen jedan element iz steka! " << niz[VelS - 1] << endl; // ispisujemo poruku da je uspješno uklonjen jedan element (jer je tako naglašeno u zadatku)
- VelS --; // smanjujemo poziciju na steku za jedan
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement