Revision: 35012
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 1, 2010 05:53 by alepk
Initial Code
#include <iostream>
using namespace std;
struct pacijent{
int matbr;
int dob;
char preime[30];
char povijest[200];};
struct tpacijenti{
pacijent lovro;
tpacijenti *sljedeci;};
void InitL(tpacijenti *lista){lista->sljedeci=NULL;}
tpacijenti *FirstL(tpacijenti *lista){return lista->sljedeci;}
tpacijenti *EndL(tpacijenti *lista){return NULL;}
tpacijenti *NextL(int p, tpacijenti *lista){
tpacijenti *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;}}}}
tpacijenti *PreviousL(int p, tpacijenti *lista){
tpacijenti *zadnji, *prethodni;
prethodni=lista;
zadnji=prethodni->sljedeci;
int brojac=2;
if(p==1 || p==0)cout<<"Ne postoji element!"<<endl;
else{
while(zadnji->sljedeci){
prethodni=zadnji;
zadnji=zadnji->sljedeci;
prethodni->sljedeci=zadnji;
brojac++;
if(brojac==p){
return prethodni->sljedeci;}}}}
tpacijenti *LocateL(int A, tpacijenti *lista){
tpacijenti *zadnji;
zadnji=lista;
int brojac=1;
while(zadnji->sljedeci){
if(A==brojac) return zadnji->sljedeci;
zadnji=zadnji->sljedeci;
brojac++;
}
return EndL(lista);}
void Insert(pacijent x, tpacijenti *lista){
tpacijenti *zadnji, *novi;
zadnji=lista;
while(zadnji->sljedeci)
zadnji=zadnji->sljedeci;
novi=new tpacijenti;
novi->lovro=x;
zadnji->sljedeci=novi;
novi->sljedeci=NULL;}
void Delete(tpacijenti *lista, int matbr){
tpacijenti *brisi=lista->sljedeci;
tpacijenti *prethodni=lista;
bool brisao = false;
while(brisi){
if(brisi->lovro.matbr==matbr){
prethodni->sljedeci=brisi->sljedeci;
delete brisi;
brisao=true;
cout << "Pacijent je izbrisan iz evidencije!" << endl;
break;}
prethodni=brisi;
brisi=brisi->sljedeci;}
if(!brisao){cout << "Nepostojeci pacijent!" << endl;}
}
int sort(tpacijenti *lista){
tpacijenti *prethodni,*tekuci,*sljedeci;
int brojac=0;
int indikator;
do{
indikator = 0;
tekuci=lista->sljedeci;
prethodni=lista;
if(lista->sljedeci==NULL) {cout << "Lista je prazna!" << endl;
return 0;}
while (tekuci->sljedeci){
sljedeci=tekuci->sljedeci;
if (tekuci->lovro.matbr > sljedeci->lovro.matbr){
prethodni->sljedeci=sljedeci;
tekuci->sljedeci=sljedeci->sljedeci;
sljedeci->sljedeci=tekuci;
indikator=1;
}
prethodni=prethodni->sljedeci;
tekuci=prethodni->sljedeci;
}
} while (indikator==1);
return 1;}
int ispis(tpacijenti *lista){
tpacijenti *zadnji;
zadnji=lista->sljedeci;
if(lista->sljedeci==NULL) {cout << "" << endl;
return 0;}
cout << "Sortirano prema maticnom broju uzlazno: " << endl;
cout << "----------------------------------------" << endl;
while(zadnji){
cout<<"Maticni broj: "<<zadnji->lovro.matbr<<endl;
cout<<"Ime i prezime: "<<zadnji->lovro.preime<<endl;
cout<<"Dob: "<<zadnji->lovro.dob<<endl;
cout<<"Povijest bolesti: " << zadnji->lovro.povijest << endl;
cout<<"-----------------------------------------"<<endl;
zadnji=zadnji->sljedeci;}
return 1;}
void mladji(tpacijenti *lista){
int brojac=0;
tpacijenti *zadnji;
zadnji=lista;
while(zadnji){
if (zadnji->lovro.dob<18){
cout << "Maticni broj: "<<zadnji->lovro.matbr<<endl;
cout << "Ime i prezime: "<<zadnji->lovro.preime<< endl;
cout << "Dob: "<<zadnji->lovro.dob<<endl;
cout << "Povijest bolesti: " <<zadnji->lovro.povijest << endl;
cout << "----------------"<<endl;
brojac++;
}
zadnji=zadnji->sljedeci;} cout << "U evidenciji se nalazi "<<brojac<< " mladjih od 18 godina." << endl;}
Initial URL
Initial Description
Biblioteka - implementacija liste pomoću pokazivaca
Initial Title
biblioteka_pokazivaci_alpek
Initial Tags
Initial Language
C++