Posted By

rlabrovi on 11/12/12


Tagged

lista pokazivac


Versions (?)

lista_pokazivac.h


 / Published in: C++
 

Biblioteka lista_pokazivac.h

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

Report this snippet  

You need to login to post a comment.