Posted By

Lovro_P on 11/12/12


Tagged

Strukture podataka pokazivaci c++


Versions (?)

Lista pokazivaci


 / Published in: C++
 

pripadajuca biblioteka za implementaciju ATP liste preko pokazivaca

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

Report this snippet  

You need to login to post a comment.