Posted By


mdino on 11/10/12

Tagged


Statistics


Viewed 33 times
Favorited by 0 user(s)

lista_pok_mdino


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

Lista pokazivaci


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

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.