Advertisement
neogz

asp stek k

Apr 10th, 2014
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int MaxS = 5; // veličina niza/steka
  5. int VelS; // ova promjenjljiva će predstavljati trenutnu poziciju u steku
  6. typedef int TipS; // pravimo sinonim za tip tako da u budućoj izmjeni tipa steka mijenjamo samo ovu liniju
  7. TipS niz[MaxS]; // inicijalizujemo niz veličine MaxS tipa TipS
  8.  
  9. void Iniciraj() {
  10.            VelS = 0; // inicijalizujemo stek poziciju na 0
  11. }
  12.  
  13. void PushMax(TipS element) {
  14.        if(VelS == MaxS) // provjeravamo je li stek pun
  15.              cout << "Greska! Stek je pun!" << endl; // ako jeste ispisujemo grešku
  16.        else { // inače ...
  17.              int najveci = niz[0]; // inicijalizujemo var. najveci na prvi element (može doći do promjene kroz for petlju)
  18.              for(int i = 1; i < VelS; i++)  // petlja se izvršava od niz[1] do najveće pozicije u steku
  19.               if(niz[i] > najveci) // upoređujemo svaki element sa trenutnim najvećim
  20.             najveci = niz[i]; // ako je trenutni element niz[i] veći od trenutnog najvećeg, on postaje najveći
  21.              if(element > najveci) { // sada element koji želimo dodati upoređujemo sa prethodno dobijenim najvećim elementom
  22.               niz[VelS] = element; // ako jeste veći dodajemo ga na trenutnu poziciju VelS
  23.               VelS ++; // povećavamo VelS tj. idemo za jednu poziciju više u steku
  24.               cout << "Uspjesno ste dodali element u stek! " << element << endl; // ispisujemo poruku i element
  25.              }
  26.                  else // inače ...
  27.              cout << "Greska! Element nije veci od najveceg! " << endl; // ispisujemo grešku ako element nije veći od najvećeg
  28.      }
  29. }
  30.  
  31. void Pop2() {
  32.            if(VelS == 0) // provjeravamo je li stek prazan, ako jeste
  33.              cout << "Greska! Stek je prazan!" << endl; // ispisujemo grešku i završavamo program
  34.        else { // inače ...
  35.              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
  36.              cout << "Uspjesno ste izbacili dva elementa iz steka! " << niz[VelS - 1] << " i " << niz[VelS - 2] << endl; // ispisujemo poruku da smo uspješno "izbrisali" elemente
  37.                  VelS -= 2; // kada ih ispišemo umanjujemo VelS za 2 (prividno ih brišemo iako se oni i dalje nalaze u nizu/steku)
  38.        }
  39.        else { // inače ...
  40.              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)
  41.                  VelS --; // smanjujemo poziciju na steku za jedan
  42.      }
  43.       }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement