/ Published in: C++
Kod datoteke zaglavlja "lista_pokazivaci.h".
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> using namespace std; struct pacijent { char prez_ime[30]; int mat_br; int dob; }; struct pacijenti { pacijent ID; pacijenti *sljedeci; }; void InitL(pacijenti *lista){ lista->sljedeci=NULL; } pacijenti *FirstL(pacijenti *lista){ return lista->sljedeci; } pacijenti *EndL(pacijenti *lista){ return NULL; } pacijenti *NextL(int p, pacijenti *lista){ pacijenti *zadnji; zadnji=lista; int brojac=0; while(zadnji->sljedeci){ brojac++; zadnji=zadnji->sljedeci; if (brojac==p){ if (zadnji->sljedeci==NULL) return EndL(lista); else return zadnji->sljedeci; } } } pacijenti *PreviousL(int p, pacijenti *lista){ pacijenti *zadnji, *prethodni; prethodni=lista; zadnji=prethodni->sljedeci; int brojac=2; if(p==0 || p==1)cout<<"Prethodni ne postoji"<<endl; else{ while(zadnji->sljedeci){ prethodni=zadnji; zadnji=zadnji->sljedeci; prethodni->sljedeci=zadnji; brojac++; if(brojac==p) return prethodni->sljedeci; } } } pacijenti *LocateL(int pom, pacijenti *lista){ pacijenti *zadnji; zadnji=lista; int brojac=1; while(zadnji->sljedeci){ if(pom==brojac) return zadnji->sljedeci; zadnji=zadnji->sljedeci; brojac++; } return EndL(lista); } void InsertL(pacijent pom, int p, pacijenti *lista){ int brojac=0; pacijenti *zadnji,*prethodni; prethodni=lista; zadnji=prethodni->sljedeci; while(prethodni->sljedeci){ if(p==brojac){ pacijenti *novi=new pacijenti; novi->ID.mat_br=pom.mat_br; novi->ID.dob=pom.dob; novi->sljedeci=zadnji; prethodni->sljedeci=novi; } prethodni=prethodni->sljedeci; brojac++; } } int novi_pacijent(pacijent pom, pacijenti *lista){ bool dodan=false; pacijenti *zadnji, *novi; zadnji=lista; while(zadnji->sljedeci) zadnji=zadnji->sljedeci; novi=new pacijenti; novi->ID=pom; zadnji->sljedeci=novi; novi->sljedeci=NULL; dodan=true; if(dodan) return 1; else return 0; } int brisanje(pacijenti *lista, int mat_br){ pacijenti *brisi=lista->sljedeci; pacijenti *prethodni=lista; while(brisi){ if(brisi->ID.mat_br==mat_br){ prethodni->sljedeci=brisi->sljedeci; delete brisi; cout<<"Pacijent obrisan!"<<endl; return 1; } prethodni=brisi; brisi=brisi->sljedeci; } cout<<"Nije naden pacijent s tim maticnim brojem. :("<<endl; return 0; } void DeleteL(int p, pacijenti *lista){ int brojac=1; pacijenti *zadnji,*prethodni, *brisi; prethodni=lista; zadnji=prethodni->sljedeci; while(prethodni->sljedeci){ if(p==brojac){ brisi=prethodni->sljedeci; prethodni->sljedeci=brisi->sljedeci; delete brisi; } } } pacijenti *RetrieveL(int p, pacijenti *lista){ int brojac=0; pacijenti *trenutni; trenutni=lista; while(trenutni->sljedeci){ if (p==brojac) return trenutni; else{ brojac++; trenutni=trenutni->sljedeci; } } } void DeleteAllL(pacijenti *lista){ pacijenti *zadnji, *brisi; while(lista->sljedeci){ brisi=lista->sljedeci; zadnji=brisi->sljedeci; lista->sljedeci=zadnji; delete brisi; } } void sortiranje(pacijenti *lista){ if(lista->sljedeci) { pacijenti *prethodni,*tekuci,*sljedeci; int indikator,brojac=0; do{ indikator = 0; tekuci=lista->sljedeci; prethodni=lista; while (tekuci->sljedeci){ sljedeci=tekuci->sljedeci; if (tekuci->ID.mat_br > sljedeci->ID.mat_br){ prethodni->sljedeci=sljedeci; tekuci->sljedeci=sljedeci->sljedeci; sljedeci->sljedeci=tekuci; indikator=1; } prethodni=prethodni->sljedeci; tekuci=prethodni->sljedeci; } } while (indikator==1); } else cout<<"Lista je prazna!!! :("<<endl; } void popis(pacijenti *lista){ pacijenti *zadnji; zadnji=lista->sljedeci; while(zadnji){ cout<<"Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl; cout<<"Maticni broj: "<<zadnji->ID.mat_br<<endl; cout<<"Dob: "<<zadnji->ID.dob<<endl; cout<<endl; zadnji=zadnji->sljedeci; } } void mladi(pacijenti *lista){ int brojac=0; pacijenti *zadnji; zadnji=lista; while(zadnji){ if (zadnji->ID.dob<18){ cout << "Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl; cout << "Maticni broj: "<<zadnji->ID.mat_br<<endl; cout << "Dob: "<<zadnji->ID.dob<<endl; cout << endl; brojac++; } zadnji=zadnji->sljedeci; } if (lista->sljedeci==0) cout<<"Lista je prazna!!! :("<<endl; else cout << "Mladih od 18 ima: "<<brojac<<". "<<endl; }