Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Stuktura koja sadrži podatke o svakoj individualnoj osobi
- //U programu kreiramo varijablu tipa ove strukture pomocu koje joj pridruzujemo vrijednosti
- struct tOsobe{
- string ime, prezime, spol;
- char OIB[11];
- short dan, mjesec, godina, tezina;
- };
- //Struktura samog stoga, sastoji se od elemenata tipa osobe -> odnosno zapisa jedne osobe koju stavljamo na stog (maksimalno 10k osoba)
- //Te broja koji predstavlja vrh stoga
- struct tstog{
- tOsobe elementi[10000];
- int top;
- };
- //Stoga alociramo dinamicki pomocu new, tipa varijable tstog gdje mu se nalaze svi potrebni elementi
- //Vrh stoga postavljamo na najveci moguci broj, sto je u ovom slucaju 9999 (0 - 9999)
- //Na samom kraju vracamo novo kreirani stog
- tstog* InitS(tstog *S){
- S = new tstog;
- S->top = 9999;
- return S;
- }
- //Ukoliko pokazivac na vrh stoga pokazuje na 9999, znaci da nema zapisa te da je stog prazan
- //U toms lucaju vracamo true -> odnosno da je prazan, u protivnom false
- bool IsEmptyS(tstog *S){
- if(S->top == 9999) return true;
- else return false;
- }
- //Ukoliko je pokazivac == 0, znaci da su sva mjesta u stogu popunjena te da nemamo mjesta za vise zapisa
- //U protivnom dodajemo novi element na stog (elemente iz strukture tstog), na poziciju vrha stoga
- //Pozicija vrha stoga nam je pokazivac na vrh stoga, odnosno to nam predstavlja indeks jer je top zadan kao integetr
- //Tu izjednacavamo s elem, odnosno elementom koji unosim
- //Na kraju samo dekrementiramo pokazivac na vrh stoga na 9998 -> i tako do 0 (kada je stog konacno pun)
- void PushS(tOsobe elem, tstog *S){
- if(S->top == 0) cout << "Stog je pun." << endl;
- else {
- S->elementi[S->top] = elem;
- S->top--;
- }
- }
- //Analogno dodavanju -> samo provjeravamo da li ima elemenata us togu, ako nema nemamo niti sto brisati
- //U protvnom jednostavno povisimo brojac na recimo 9999, i zaboravljamo prethodni zapis. (On ce biti prepisan kod sljedeceg unosa)
- void PopS(tstog *S){
- if (IsEmptyS(S)) cout << "Stog je prazan." << endl;
- else S->top++;
- }
- //Opet provjeravamo da lje stog prazan, ako je izlazimo van
- //U protvnom vracamo vrijednost sa svih elemenata stoga, gdje je indeks jednak vrhu + 1
- //To nam predstavlja vrh stoga
- tOsobe TopS(tstog *S){
- if (IsEmptyS(S)) cout << "Stog je prazan." << endl;
- else return S->elementi[S->top+1];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement