Posted By

dotonkovi on 10/25/10


Tagged

header sp pokazivaci


Versions (?)

Datoteka zaglavlja "lista_pokazivaci.h"


 / Published in: C++
 

Kod datoteke zaglavlja "lista_pokazivaci.h".

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct pacijent {
  5. char prez_ime[30];
  6. int mat_br;
  7. int dob;
  8. };
  9.  
  10. struct pacijenti {
  11. pacijent ID;
  12. pacijenti *sljedeci;
  13. };
  14.  
  15. void InitL(pacijenti *lista){
  16. lista->sljedeci=NULL;
  17. }
  18.  
  19. pacijenti *FirstL(pacijenti *lista){
  20. return lista->sljedeci;
  21. }
  22.  
  23. pacijenti *EndL(pacijenti *lista){
  24. return NULL;
  25. }
  26.  
  27. pacijenti *NextL(int p, pacijenti *lista){
  28. pacijenti *zadnji;
  29. zadnji=lista;
  30. int brojac=0;
  31. while(zadnji->sljedeci){
  32. brojac++;
  33. zadnji=zadnji->sljedeci;
  34. if (brojac==p){
  35. if (zadnji->sljedeci==NULL) return EndL(lista);
  36. else return zadnji->sljedeci;
  37. }
  38. }
  39. }
  40.  
  41. pacijenti *PreviousL(int p, pacijenti *lista){
  42. pacijenti *zadnji, *prethodni;
  43. prethodni=lista;
  44. zadnji=prethodni->sljedeci;
  45. int brojac=2;
  46. if(p==0 || p==1)cout<<"Prethodni ne postoji"<<endl;
  47. else{
  48. while(zadnji->sljedeci){
  49. prethodni=zadnji;
  50. zadnji=zadnji->sljedeci;
  51. prethodni->sljedeci=zadnji;
  52. brojac++;
  53. if(brojac==p) return prethodni->sljedeci;
  54. }
  55. }
  56. }
  57.  
  58. pacijenti *LocateL(int pom, pacijenti *lista){
  59. pacijenti *zadnji;
  60. zadnji=lista;
  61. int brojac=1;
  62. while(zadnji->sljedeci){
  63. if(pom==brojac) return zadnji->sljedeci;
  64. zadnji=zadnji->sljedeci;
  65. brojac++;
  66. }
  67. return EndL(lista);
  68. }
  69. void InsertL(pacijent pom, int p, pacijenti *lista){
  70. int brojac=0;
  71. pacijenti *zadnji,*prethodni;
  72. prethodni=lista;
  73. zadnji=prethodni->sljedeci;
  74. while(prethodni->sljedeci){
  75. if(p==brojac){
  76. pacijenti *novi=new pacijenti;
  77. novi->ID.mat_br=pom.mat_br;
  78. novi->ID.dob=pom.dob;
  79.  
  80. novi->sljedeci=zadnji;
  81. prethodni->sljedeci=novi;
  82. }
  83. prethodni=prethodni->sljedeci;
  84. brojac++;
  85. }
  86. }
  87.  
  88. int novi_pacijent(pacijent pom, pacijenti *lista){
  89. bool dodan=false;
  90. pacijenti *zadnji, *novi;
  91. zadnji=lista;
  92. while(zadnji->sljedeci)
  93. zadnji=zadnji->sljedeci;
  94. novi=new pacijenti;
  95. novi->ID=pom;
  96. zadnji->sljedeci=novi;
  97. novi->sljedeci=NULL;
  98. dodan=true;
  99. if(dodan) return 1;
  100. else return 0;
  101. }
  102.  
  103. int brisanje(pacijenti *lista, int mat_br){
  104. pacijenti *brisi=lista->sljedeci;
  105. pacijenti *prethodni=lista;
  106. while(brisi){
  107. if(brisi->ID.mat_br==mat_br){
  108. prethodni->sljedeci=brisi->sljedeci;
  109. delete brisi;
  110. cout<<"Pacijent obrisan!"<<endl;
  111. return 1;
  112. }
  113. prethodni=brisi;
  114. brisi=brisi->sljedeci;
  115. }
  116. cout<<"Nije naden pacijent s tim maticnim brojem. :("<<endl;
  117. return 0;
  118. }
  119.  
  120. void DeleteL(int p, pacijenti *lista){
  121. int brojac=1;
  122. pacijenti *zadnji,*prethodni, *brisi;
  123. prethodni=lista;
  124. zadnji=prethodni->sljedeci;
  125. while(prethodni->sljedeci){
  126. if(p==brojac){
  127. brisi=prethodni->sljedeci;
  128. prethodni->sljedeci=brisi->sljedeci;
  129. delete brisi;
  130. }
  131. }
  132. }
  133.  
  134. pacijenti *RetrieveL(int p, pacijenti *lista){
  135. int brojac=0;
  136. pacijenti *trenutni;
  137. trenutni=lista;
  138. while(trenutni->sljedeci){
  139. if (p==brojac) return trenutni;
  140. else{
  141. brojac++;
  142. trenutni=trenutni->sljedeci;
  143. }
  144. }
  145. }
  146.  
  147. void DeleteAllL(pacijenti *lista){
  148. pacijenti *zadnji, *brisi;
  149. while(lista->sljedeci){
  150. brisi=lista->sljedeci;
  151. zadnji=brisi->sljedeci;
  152. lista->sljedeci=zadnji;
  153. delete brisi;
  154. }
  155. }
  156.  
  157. void sortiranje(pacijenti *lista){
  158. if(lista->sljedeci) {
  159. pacijenti *prethodni,*tekuci,*sljedeci;
  160. int indikator,brojac=0;
  161. do{
  162. indikator = 0;
  163. tekuci=lista->sljedeci;
  164. prethodni=lista;
  165. while (tekuci->sljedeci){
  166. sljedeci=tekuci->sljedeci;
  167. if (tekuci->ID.mat_br > sljedeci->ID.mat_br){
  168. prethodni->sljedeci=sljedeci;
  169. tekuci->sljedeci=sljedeci->sljedeci;
  170. sljedeci->sljedeci=tekuci;
  171. indikator=1;
  172. }
  173. prethodni=prethodni->sljedeci;
  174. tekuci=prethodni->sljedeci;
  175. }
  176. } while (indikator==1);
  177. }
  178. else cout<<"Lista je prazna!!! :("<<endl;
  179. }
  180.  
  181. void popis(pacijenti *lista){
  182. pacijenti *zadnji;
  183. zadnji=lista->sljedeci;
  184. while(zadnji){
  185. cout<<"Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl;
  186. cout<<"Maticni broj: "<<zadnji->ID.mat_br<<endl;
  187. cout<<"Dob: "<<zadnji->ID.dob<<endl;
  188. cout<<endl;
  189. zadnji=zadnji->sljedeci;
  190. }
  191. }
  192.  
  193. void mladi(pacijenti *lista){
  194. int brojac=0;
  195. pacijenti *zadnji;
  196. zadnji=lista;
  197. while(zadnji){
  198. if (zadnji->ID.dob<18){
  199. cout << "Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl;
  200. cout << "Maticni broj: "<<zadnji->ID.mat_br<<endl;
  201. cout << "Dob: "<<zadnji->ID.dob<<endl;
  202. cout << endl;
  203. brojac++;
  204. }
  205. zadnji=zadnji->sljedeci;
  206. }
  207. if (lista->sljedeci==0) cout<<"Lista je prazna!!! :("<<endl;
  208. else cout << "Mladih od 18 ima: "<<brojac<<". "<<endl;
  209. }

Report this snippet  

You need to login to post a comment.