-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlista_pokazivaci.cpp
More file actions
126 lines (118 loc) · 4.49 KB
/
Copy pathlista_pokazivaci.cpp
File metadata and controls
126 lines (118 loc) · 4.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
typedef int element;
struct lista{
char maticni[14];
char iprez[30];
int godina;
lista *sljedeci;
};
typedef lista *liste;
int br=0;
liste FirstL(lista *L){
L=new lista;
L->sljedeci=NULL;
return (L->sljedeci);
}
liste EndL(lista *L){
lista *list;
list=L;
while(list->sljedeci)
list=list->sljedeci;
return list;
}
int LocateL(char x[],int p,lista *L){
L->sljedeci=NULL;
if(p>0){
L->sljedeci=NULL;
lista *tekuci;
tekuci=L->sljedeci;
while(tekuci){
if(strcmp(tekuci->maticni,x)==0)return 0;
else tekuci=tekuci->sljedeci;
}
}}
int InsertL(char x[],int y,char iprez[],element p, lista *L){
if(p==0) L->sljedeci=NULL;
lista *novi,*zadnji;
zadnji=L;
while(zadnji->sljedeci)
zadnji=zadnji->sljedeci;
novi=new lista;
zadnji->sljedeci=novi;
novi->sljedeci=NULL;
strcpy(novi->maticni,x);
strcpy(novi->iprez,iprez);
novi->godina=y;
}
liste RetrieveL(int p,lista *L){
lista *prethodni,*tekuci,*dalje;
int zamjena;
do{
zamjena=0;
prethodni=L;
tekuci=L->sljedeci;
while(tekuci->sljedeci){
dalje=tekuci->sljedeci;
if(strcmp((tekuci->maticni),(dalje->maticni))==1){
prethodni->sljedeci=dalje;
tekuci->sljedeci=dalje->sljedeci;
dalje->sljedeci=tekuci;
zamjena=1;
}
prethodni=prethodni->sljedeci;
tekuci=prethodni->sljedeci;
}
}while(zamjena==1);
lista *ispis=L->sljedeci;
while(ispis){
cout << ispis->maticni << "\t\t" << ispis->iprez << "\t\t" << ispis->godina << endl;
ispis=ispis->sljedeci;
}
cout << endl;
}
liste DeleteL(int p,char mat[], lista *L){
lista *novi,*zadnji;
zadnji=L;
lista *prethodni=L;
lista *brisi=L->sljedeci;
while(brisi){
if(strcmp(brisi->maticni,mat)==0){
prethodni->sljedeci=brisi->sljedeci;
delete brisi;
cout << "Uspjesno izbrisano..." << endl;
return 0;
}
prethodni=brisi;
brisi=brisi->sljedeci;
}
if(brisi==0)cout << "Pacijent nije jos uveden!" << endl;
}
liste Retrieve_18(int p, lista *L){
lista *prethodni,*tekuci,*sljedeci;
int zamjena;
do{
zamjena=0;
prethodni=L;
tekuci=prethodni->sljedeci;
while(tekuci->sljedeci){
sljedeci=tekuci->sljedeci;
if(tekuci->maticni>sljedeci->maticni){
prethodni->sljedeci=sljedeci;
tekuci->sljedeci=sljedeci->sljedeci;
sljedeci->sljedeci=tekuci;
zamjena=1;
}
prethodni=prethodni->sljedeci;
tekuci=prethodni->sljedeci;}
}while(zamjena==1);
lista *ispis=L->sljedeci;
while(ispis){
if((ispis->godina)<18){
cout << ispis->maticni<< "\t\t" << ispis->iprez << "\t\t" << ispis->godina<<endl;
}
ispis=ispis->sljedeci;
}
}