Posted By

mstarjac on 11/12/12


Tagged


Versions (?)

Pokazivac.h


 / Published in: C++
 

biblioteka pokazivac

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct podaci{
  5. int sifra;
  6. char naziv[42], vrsta[42];
  7. float cijena;
  8. short dan,mj,godina;
  9. };
  10.  
  11. struct animal{
  12. podaci zivotinja;
  13. animal *sljedeci;
  14. };
  15. //------------------------------------------------------------------------------
  16. int var(){
  17. return 0;
  18. }
  19. typedef animal *element;
  20.  
  21. animal *EndL(animal *lista)
  22. {
  23. element zadnji=lista;
  24. while(zadnji->sljedeci)
  25. {
  26. zadnji=zadnji->sljedeci;
  27. }
  28. return zadnji->sljedeci;
  29. };
  30.  
  31. animal *FirstL(animal *lista)
  32. {
  33. return lista->sljedeci;
  34. };
  35.  
  36. animal *NextL(element trenutni,animal *lista)
  37. {
  38. return trenutni->sljedeci;
  39. };
  40.  
  41. /*element PreviousL(element p, animal *list){
  42.   animal *tekuci = list->sljedeci;
  43.   while(p != tekuci->sljedeci && tekuci->sljedeci!=NULL)
  44.   tekuci=tekuci->sljedeci;
  45.   return tekuci;
  46. }*/
  47. animal *PreviousL(element trenutni, animal *lista)
  48. {
  49. if(trenutni==FirstL(lista))
  50. {
  51. cout<<"* Pogreska @ PreviousL: Ne postoji element prije trazenog elementa!"<<endl;
  52. return NULL;
  53.  
  54. }
  55. else if(trenutni==EndL(lista)) return trenutni;
  56. else
  57. {
  58. animal *prethodni=lista->sljedeci, *tekuci=lista;
  59. while(trenutni!=prethodni)
  60. {
  61. prethodni=prethodni->sljedeci;
  62. tekuci=tekuci->sljedeci;
  63. }
  64. return tekuci;
  65. }
  66. };
  67.  
  68. element LocateL(int upit, animal *lista)
  69. {
  70. animal *tekuci=lista->sljedeci;
  71. while(tekuci)
  72. {
  73. if(tekuci->zivotinja.sifra==upit) return tekuci;
  74. //if(tekuci->zivotinja.naziv==upit2) return tekuci;
  75. tekuci=tekuci->sljedeci;
  76. }
  77. cout<<"LocateL: U listi ne postoji trazena vrijednost!"<<endl;
  78. return EndL(lista);
  79. };
  80.  
  81.  
  82. element LocateL(int upit,char trazi[42], animal *lista)
  83. {
  84. animal *tekuci=lista->sljedeci;
  85. while(tekuci)
  86. {
  87. if(!strcmp(tekuci->zivotinja.naziv,trazi))return tekuci;
  88. if(!strcmp(tekuci->zivotinja.vrsta,trazi))return tekuci;
  89. tekuci=tekuci->sljedeci;
  90. }
  91. cout<<"LocateL: U listi ne postoji trazena vrijednost!"<<endl;
  92. return EndL(lista);
  93. };
  94.  
  95. void InsertL(podaci x, element pozicija, animal *lista)
  96. {
  97. element novi=new animal;
  98. if(pozicija==lista)
  99. {
  100. novi->sljedeci=NULL;
  101. lista->sljedeci=novi;
  102. novi->zivotinja=x;
  103. return;
  104. }
  105. element prethodni=lista, tekuci=lista->sljedeci;
  106. while(tekuci!=pozicija)
  107. {
  108. tekuci=tekuci->sljedeci;
  109. prethodni=prethodni->sljedeci;
  110. }
  111. novi->sljedeci=prethodni->sljedeci;
  112. prethodni->sljedeci=novi;
  113. novi->zivotinja=x;
  114. };
  115.  
  116. void DeleteL(element trazeni, animal *lista)
  117. {
  118. element brisi=lista->sljedeci, prethodni=lista;
  119. while(brisi!=trazeni)
  120. {
  121. prethodni=prethodni->sljedeci;
  122. brisi=brisi->sljedeci;
  123. }
  124. if(brisi==trazeni)
  125. {
  126. prethodni->sljedeci=brisi->sljedeci;
  127. delete brisi;
  128. }
  129. else cout<<"DeleteL: U listi ne postoji trazeni element!"<<endl;
  130. };
  131.  
  132. podaci RetrieveL(element trazeni,animal *lista)
  133. {
  134. animal *trenutni=lista;
  135. while(trenutni!=trazeni)
  136. {
  137. trenutni=trenutni->sljedeci;
  138. }
  139. if(trenutni==trazeni)
  140. {
  141. return trenutni->zivotinja;
  142. }
  143. cout<<"RetrieveL: U listi ne postoji trazeni element!"<<endl;
  144. };
  145.  
  146. void DeleteAllL(animal *lista)
  147. {
  148. animal *brisi=lista;
  149. while(lista->sljedeci!=NULL)
  150. {
  151. brisi=lista->sljedeci;
  152. lista->sljedeci=brisi->sljedeci;
  153. delete brisi;
  154. }
  155. };
  156.  
  157. animal *InitL(animal *lista)
  158. {
  159. lista->sljedeci=NULL;
  160. };
  161. /*
  162. animal *InitL (animal *glava){
  163. element zadnji;
  164. glava=new animal;
  165. zadnji=new animal;
  166. glava->sljedeci=zadnji;
  167. zadnji->sljedeci=NULL;
  168. return glava;
  169. }*/

Report this snippet  

You need to login to post a comment.