Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. //Stuktura koja sadrži podatke o svakoj individualnoj osobi
  2. //U programu kreiramo varijablu tipa ove strukture pomocu koje joj pridruzujemo vrijednosti
  3. struct tOsobe{
  4. string ime, prezime, spol;
  5. char OIB[11];
  6. short dan, mjesec, godina, tezina;
  7. };
  8.  
  9. //Struktura samog stoga, sastoji se od elemenata tipa osobe -> odnosno zapisa jedne osobe koju stavljamo na stog (maksimalno 10k osoba)
  10. //Te broja koji predstavlja vrh stoga
  11. struct tstog{
  12. tOsobe elementi[10000];
  13. int top;
  14. };
  15.  
  16. //Stoga alociramo dinamicki pomocu new, tipa varijable tstog gdje mu se nalaze svi potrebni elementi
  17. //Vrh stoga postavljamo na najveci moguci broj, sto je u ovom slucaju 9999 (0 - 9999)
  18. //Na samom kraju vracamo novo kreirani stog
  19. tstog* InitS(tstog *S){
  20. S = new tstog;
  21. S->top = 9999;
  22. return S;
  23. }
  24.  
  25. //Ukoliko pokazivac na vrh stoga pokazuje na 9999, znaci da nema zapisa te da je stog prazan
  26. //U toms lucaju vracamo true -> odnosno da je prazan, u protivnom false
  27. bool IsEmptyS(tstog *S){
  28. if(S->top == 9999) return true;
  29. else return false;
  30. }
  31.  
  32. //Ukoliko je pokazivac == 0, znaci da su sva mjesta u stogu popunjena te da nemamo mjesta za vise zapisa
  33. //U protivnom dodajemo novi element na stog (elemente iz strukture tstog), na poziciju vrha stoga
  34. //Pozicija vrha stoga nam je pokazivac na vrh stoga, odnosno to nam predstavlja indeks jer je top zadan kao integetr
  35. //Tu izjednacavamo s elem, odnosno elementom koji unosim
  36. //Na kraju samo dekrementiramo pokazivac na vrh stoga na 9998 -> i tako do 0 (kada je stog konacno pun)
  37. void PushS(tOsobe elem, tstog *S){
  38. if(S->top == 0) cout << "Stog je pun." << endl;
  39. else {
  40. S->elementi[S->top] = elem;
  41. S->top--;
  42. }
  43. }
  44.  
  45. //Analogno dodavanju -> samo provjeravamo da li ima elemenata us togu, ako nema nemamo niti sto brisati
  46. //U protvnom jednostavno povisimo brojac na recimo 9999, i zaboravljamo prethodni zapis. (On ce biti prepisan kod sljedeceg unosa)
  47. void PopS(tstog *S){
  48. if (IsEmptyS(S)) cout << "Stog je prazan." << endl;
  49. else S->top++;
  50. }
  51.  
  52. //Opet provjeravamo da lje stog prazan, ako je izlazimo van
  53. //U protvnom vracamo vrijednost sa svih elemenata stoga, gdje je indeks jednak vrhu + 1
  54. //To nam predstavlja vrh stoga
  55. tOsobe TopS(tstog *S){
  56. if (IsEmptyS(S)) cout << "Stog je prazan." << endl;
  57. else return S->elementi[S->top+1];
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement