Guest User

Untitled

a guest
Jun 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct pacijent{
  5. int matbr;
  6. int dob;
  7. };
  8.  
  9. struct tpacijenti{
  10. pacijent pacov;
  11. tpacijenti *sljedeci;
  12. };
  13.  
  14. void InitL(tpacijenti *lista){
  15. lista->sljedeci=NULL;
  16. }
  17.  
  18. tpacijenti *FirstL(tpacijenti *lista){
  19. return lista->sljedeci;
  20. }
  21.  
  22. tpacijenti *EndL(tpacijenti *lista){
  23. return NULL;
  24. }
  25.  
  26. tpacijenti *NextL(int p, tpacijenti *lista){
  27. tpacijenti *zadnji;
  28. zadnji=lista;
  29. int brojac=0;
  30. while(zadnji->sljedeci){
  31. brojac++;
  32. zadnji=zadnji->sljedeci;
  33. if (brojac==p){
  34. if (zadnji->sljedeci==NULL) return EndL(lista);
  35. else{
  36. return zadnji->sljedeci;
  37. }
  38.  
  39. }
  40. }
  41. }
  42.  
  43. tpacijenti *PreviousL(int p, tpacijenti *lista){
  44. tpacijenti *zadnji, *prethodni;
  45. prethodni=lista;
  46. zadnji=prethodni->sljedeci;
  47. int brojac=2;
  48. if(p==0 || p==1)cout<<"Prethodni ne postoji"<<endl;
  49. else{
  50. while(zadnji->sljedeci){
  51. prethodni=zadnji;
  52. zadnji=zadnji->sljedeci;
  53. prethodni->sljedeci=zadnji;
  54. brojac++;
  55. if(brojac==p){
  56. return prethodni->sljedeci;
  57. }
  58. }
  59. }
  60. }
  61.  
  62. tpacijenti *LocateL(int x, tpacijenti *lista){
  63. tpacijenti *zadnji;
  64. zadnji=lista;
  65. int brojac=1;
  66. while(zadnji->sljedeci){
  67. if(x==brojac) return zadnji->sljedeci;
  68. zadnji=zadnji->sljedeci;
  69. brojac++;
  70. }
  71. return EndL(lista);
  72. }
  73. void InsertL(pacijent x, int p, tpacijenti *lista){
  74. int brojac=0;
  75. tpacijenti *zadnji,*prethodni;
  76. prethodni=lista;
  77. zadnji=prethodni->sljedeci;
  78. while(prethodni->sljedeci){
  79. if(p==brojac){
  80. tpacijenti *novi=new tpacijenti;
  81. novi->pacov.matbr=x.matbr;
  82. novi->pacov.dob=x.dob;
  83. novi->sljedeci=zadnji;
  84. prethodni->sljedeci=novi;
  85. }
  86. prethodni=prethodni->sljedeci;
  87. brojac++;
  88. }
  89. }
  90.  
  91. void Insert(pacijent x, tpacijenti *lista){
  92. tpacijenti *zadnji, *novi;
  93. zadnji=lista;
  94. while(zadnji->sljedeci)
  95. zadnji=zadnji->sljedeci;
  96. novi=new tpacijenti;
  97. novi->pacov=x;
  98. zadnji->sljedeci=novi;
  99. novi->sljedeci=NULL;
  100. }
  101.  
  102. int Delete(tpacijenti *lista, int matbr){
  103. tpacijenti *brisi=lista->sljedeci;
  104. tpacijenti *prethodni=lista;
  105. while(brisi){
  106. if(brisi->pacov.matbr==matbr){
  107. prethodni->sljedeci=brisi->sljedeci;
  108. delete brisi;
  109. return 1;
  110. }
  111. prethodni=brisi;
  112. brisi=brisi->sljedeci;
  113. }
  114. return 0;
  115. }
  116.  
  117. void DeleteL(int p, tpacijenti *lista){
  118. int brojac=1;
  119. tpacijenti *zadnji,*prethodni, *brisi;
  120. prethodni=lista;
  121. zadnji=prethodni->sljedeci;
  122. while(prethodni->sljedeci){
  123. if(p==brojac){
  124. brisi=prethodni->sljedeci;
  125. prethodni->sljedeci=brisi->sljedeci;
  126. delete brisi;
  127. }
  128. }
  129. }
  130.  
  131. tpacijenti *RetrieveL(int p, tpacijenti *lista){
  132. int brojac=0;
  133. tpacijenti *trenutni;
  134. trenutni=lista;
  135. while(trenutni->sljedeci){
  136. if (p==brojac) return trenutni;
  137. else{
  138. brojac++;
  139. trenutni=trenutni->sljedeci;
  140. }
  141. }
  142. }
  143.  
  144. void DeleteAllL(tpacijenti *lista){
  145. tpacijenti *zadnji, *brisi;
  146. while(lista->sljedeci){
  147. brisi=lista->sljedeci;
  148. zadnji=brisi->sljedeci;
  149. lista->sljedeci=zadnji;
  150. delete brisi;
  151. }
  152. }
  153.  
  154. void sort(tpacijenti *lista){
  155. tpacijenti *prethodni,*tekuci,*sljedeci;
  156. int indikator,brojac=0;
  157. do{
  158. indikator = 0;
  159. tekuci=lista->sljedeci;
  160. prethodni=lista;
  161. while (tekuci->sljedeci){
  162. sljedeci=tekuci->sljedeci;
  163. if (tekuci->pacov.matbr > sljedeci->pacov.matbr){
  164. prethodni->sljedeci=sljedeci;
  165. tekuci->sljedeci=sljedeci->sljedeci;
  166. sljedeci->sljedeci=tekuci;
  167. indikator=1;
  168. }
  169. prethodni=prethodni->sljedeci;
  170. tekuci=prethodni->sljedeci;
  171. }
  172. } while (indikator==1);
  173. }
  174.  
  175. void ispis(tpacijenti *lista){
  176. tpacijenti *zadnji;
  177. zadnji=lista->sljedeci;
  178. while(zadnji){
  179. cout<<"Maticni broj je "<<zadnji->pacov.matbr<<endl;
  180. cout<<"Dob je "<<zadnji->pacov.dob<<endl;
  181. cout<<"------------------"<<endl;
  182. zadnji=zadnji->sljedeci;
  183. }
  184.  
  185. }
  186.  
  187. void ispisgodine(tpacijenti *lista){
  188. int brojac=0;
  189. tpacijenti *zadnji;
  190. zadnji=lista;
  191. while(zadnji){
  192. if (zadnji->pacov.dob<18){
  193. cout << "Maticni broj: "<<zadnji->pacov.matbr<<endl;
  194. cout << "Dob: "<<zadnji->pacov.dob<<endl;
  195. cout << "----------------"<<endl;
  196. brojac++;
  197. }
  198. zadnji=zadnji->sljedeci;
  199. }
  200. cout << "Mladih od 18 ima "<<brojac<<endl;
  201. }
Add Comment
Please, Sign In to add comment