zad1 sp lista pok


/ Published in: C++
Save to your folder(s)

biblioteka lista pokazivac potreba za zad1 iz sp


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct pzivotinja
  5. {
  6. int sifra,dan,mjesec,godina;
  7. char naziv[40];
  8. char vrsta[40];
  9. float cijena;
  10. };
  11.  
  12. struct tzoo
  13. {
  14. pzivotinja*element;
  15. tzoo*sljedeci;
  16. };
  17.  
  18. tzoo*novi;
  19.  
  20. pzivotinja* FirstL(tzoo*lista)
  21. {
  22. return lista->sljedeci->element;
  23. }
  24.  
  25. int EndL(tzoo*lista)
  26. {
  27. return 0;
  28. }
  29.  
  30. tzoo*NextL(int p, tzoo*lista)
  31. {
  32. tzoo*zadnji=lista;
  33. int brojac=0;
  34. while(brojac<p&&zadnji!=NULL)
  35. {
  36. zadnji=zadnji->sljedeci;
  37. brojac++;
  38. }
  39. if(zadnji==NULL)return NULL;
  40. else
  41. return zadnji->sljedeci;
  42. }
  43.  
  44. tzoo*PreviousL(int p, tzoo*lista)
  45. {
  46. tzoo*zadnji=lista;
  47. int brojac=0;
  48. p-=2;
  49. while(brojac<p&&zadnji!=NULL)
  50. {
  51. zadnji=zadnji->sljedeci;
  52. brojac++;
  53. }
  54. if(zadnji==NULL)return NULL;
  55. else
  56. return zadnji->sljedeci;
  57. }
  58.  
  59. tzoo*LocateL(int n,tzoo*lista)
  60. {
  61. tzoo*zadnji=lista->sljedeci;
  62. while(zadnji!=NULL)
  63. {
  64. if(zadnji->element->sifra==n)
  65. {
  66. cout<<"PRONADJENO!\n";
  67. return zadnji;
  68. }
  69. else zadnji=zadnji->sljedeci;
  70. }
  71. cout<<"NIJE PRONADJENO!\n";
  72. return NULL;
  73. }
  74.  
  75. void InsertL(pzivotinja*novi, int p, tzoo*lista)
  76. {
  77. tzoo*zadnji = lista;
  78. tzoo*novi3=new tzoo;
  79. novi3->element=novi;
  80. novi3->sljedeci=NULL;
  81. int brojac=0;
  82. while(brojac<p&&zadnji!=NULL)
  83. {
  84. zadnji=zadnji->sljedeci;
  85. brojac++;
  86. }
  87. if(brojac<p){
  88. cout<<"Ne mogu dodati na to mjesto!\n";
  89. return;
  90. }
  91. if(zadnji->sljedeci!=NULL)
  92. {
  93. novi3->sljedeci=zadnji->sljedeci;
  94. zadnji->sljedeci=novi3;
  95. }
  96. else zadnji->sljedeci=novi3;
  97. }
  98.  
  99. int DeleteL(int p, tzoo*lista)
  100. {
  101. tzoo*zadnji=lista;
  102. bool pogresan=false;
  103. int brojac=0;
  104. while(brojac<p-1)
  105. {
  106. zadnji=zadnji->sljedeci;
  107. if(!zadnji->sljedeci)
  108. {
  109. pogresan=true;
  110. break;
  111. }
  112. brojac++;
  113. }
  114. if(pogresan==true)cout<<"Taj element ne postoji!\n";
  115. if(!pogresan){
  116. tzoo*brisani_element=zadnji->sljedeci;
  117. zadnji->sljedeci=zadnji->sljedeci->sljedeci;
  118. delete brisani_element;
  119. }
  120. return 0;
  121. }
  122.  
  123. pzivotinja * RetrieveL(int p,tzoo*lista)
  124. {
  125. tzoo*zadnji=lista;
  126. int brojac=0;
  127. while(brojac<p&&zadnji!=NULL)
  128. {
  129. zadnji=zadnji->sljedeci;
  130. brojac++;
  131. }
  132. return zadnji->element;
  133. }
  134.  
  135. tzoo* InitL(tzoo*lista)
  136. {
  137. lista= new tzoo;
  138. lista->sljedeci=NULL;
  139. return lista;
  140. }
  141.  
  142. void DeleteAll(tzoo*lista)
  143. {
  144. tzoo*zadnji=lista->sljedeci;
  145. while(zadnji->sljedeci)
  146. {
  147. novi=zadnji->sljedeci;
  148. delete zadnji;
  149. zadnji=novi;
  150. }
  151. delete zadnji;
  152. lista->sljedeci=NULL;
  153. }
  154.  
  155. int NumberL(tzoo*lista)
  156. {
  157. tzoo*zadnji=lista;
  158. int brojac=0;
  159. while(zadnji->sljedeci)
  160. {
  161. zadnji=zadnji->sljedeci;
  162. brojac++;
  163. }
  164. return brojac;
  165. }
  166.  
  167. pzivotinja*UnosL(pzivotinja*novi)
  168. {
  169. cout<<"Sifra= ";
  170. cin>>novi->sifra;
  171. cout<<"Vrsta= ";
  172. cin>>novi->vrsta;
  173. cout<<"Naziv= ";
  174. cin>>novi->naziv;
  175. cout<<"Cijena= ";
  176. cin>>novi->cijena;
  177. do{
  178. cout<<"Dan dostave= ";
  179. cin>>novi->dan;
  180. }
  181. while(novi->dan<1||novi->dan>31);
  182. do{
  183. cout<<"Mjesec dostave= ";
  184. cin>>novi->mjesec;
  185. }
  186. while(novi->mjesec<1||novi->mjesec>12);
  187. cout<<"Godina dostave= ";
  188. cin>>novi->godina;
  189. }
  190.  
  191. pzivotinja*IspisL(pzivotinja*novi){
  192. cout<<"=====================\n";
  193. cout<<"Zivotinja\n";
  194. cout<<"---------------------\n";
  195. cout<<"Sifra= "<<novi->sifra<<endl;
  196. cout<<"Vrsta= "<<novi->vrsta<<endl;
  197. cout<<"Naziv= "<<novi->naziv<<endl;
  198. cout<<"Datum= "<<novi->dan<<"."<<novi->mjesec<<"."<<novi->godina<<endl;
  199. cout<<"Cijena= "<<novi->cijena<<endl;
  200. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.