Evidencija životinja, lista pokazivača - Zadatak_1, Strukture podataka


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

Evidencija zivotinja pomocu lista pokazivaca


Copy this code and paste it in your HTML
  1. struct z {
  2. int sifra,dan,mjesec,godina;
  3. char naziv[60],vrsta[60];
  4. float cijena;
  5. };
  6.  
  7. struct t {
  8. z*element;
  9. t*slje;
  10. };
  11.  
  12. t*NextL( int p, t*list_head )
  13. {
  14. t*pomocna_zivotinja=list_head;
  15. int br=0;
  16. while( br<p&&pomocna_zivotinja!=NULL ) {
  17. pomocna_zivotinja=pomocna_zivotinja->slje;
  18. br++;
  19. }
  20. if( pomocna_zivotinja==NULL ){
  21. return NULL;
  22. }
  23. else{
  24. return pomocna_zivotinja->slje;
  25. }
  26. }
  27.  
  28. t*PreviousL( int p, t*list_head )
  29. {
  30. t*pomocna_zivotinja=list_head;
  31. int br=0;
  32. p=p-2;
  33. while( br<p&&pomocna_zivotinja!=NULL ) {
  34. pomocna_zivotinja=pomocna_zivotinja->slje;
  35. br++;
  36. }
  37. if( pomocna_zivotinja==NULL ){
  38. return NULL;
  39. }
  40. else{
  41. return pomocna_zivotinja->slje;
  42. }
  43. }
  44.  
  45. t*LocateL( int n,t*list_head )
  46. {
  47. t*pomocna_zivotinja=list_head->slje;
  48. while( pomocna_zivotinja!=NULL ) {
  49. if( pomocna_zivotinja->element->sifra==n ){
  50. return pomocna_zivotinja;
  51. }
  52. else {
  53. pomocna_zivotinja=pomocna_zivotinja->slje;
  54. }
  55. }
  56. return NULL;
  57. }
  58.  
  59. void InsertL( z*novi, int p, t*list_head )
  60. {
  61. t*pomocna_zivotinja = list_head;
  62. t*novi3=new t;
  63. novi3->element=novi;
  64. novi3->slje=NULL;
  65. int br=0;
  66. while( br<p&&pomocna_zivotinja!=NULL ) {
  67. pomocna_zivotinja=pomocna_zivotinja->slje;
  68. br++;
  69. }
  70. if( br<p ){
  71. return;
  72. }
  73. if( pomocna_zivotinja->slje!=NULL ) {
  74. novi3->slje=pomocna_zivotinja->slje;
  75. pomocna_zivotinja->slje=novi3;
  76. } else pomocna_zivotinja->slje=novi3;
  77. }
  78.  
  79. int DeleteL( int p, t*list_head )
  80. {
  81. t*pomocna_zivotinja=list_head;
  82. bool pogresan=false;
  83. int br=0;
  84. while( br<p-1 ) {
  85. pomocna_zivotinja=pomocna_zivotinja->slje;
  86. if( !pomocna_zivotinja->slje ) {
  87. pogresan=true;
  88. break;
  89. }
  90. br++;
  91. }
  92. if( !pogresan ) {
  93. t*brisani_element=pomocna_zivotinja->slje;
  94. pomocna_zivotinja->slje=pomocna_zivotinja->slje->slje;
  95. delete brisani_element;
  96. }
  97. return 0;
  98. }
  99.  
  100. z* FirstL( t*list_head )
  101. {
  102. return list_head->slje->element;
  103. }
  104.  
  105. int EndL( t*list_head )
  106. {
  107. return 0;
  108. }
  109.  
  110. z * RetrieveL( int p,t*list_head )
  111. {
  112. t*pomocna_zivotinja=list_head;
  113. int br=0;
  114. while( br<p&&pomocna_zivotinja!=NULL ) {
  115. pomocna_zivotinja=pomocna_zivotinja->slje;
  116. br++;
  117. }
  118. return pomocna_zivotinja->element;
  119. }
  120.  
  121. void DeleteAll( t*list_head )
  122. {
  123. if(list_head->slje==NULL){
  124. return;
  125. }
  126. t*pomocna_zivotinja=list_head->slje;
  127. while( pomocna_zivotinja->slje ) {
  128. t*novi=pomocna_zivotinja->slje;
  129. delete pomocna_zivotinja;
  130. pomocna_zivotinja=novi;
  131. }
  132. delete pomocna_zivotinja;
  133. list_head->slje=NULL;
  134. }
  135.  
  136. int NumberL( t*list_head )
  137. {
  138. t*pomocna_zivotinja=list_head;
  139. int br=0;
  140. while( pomocna_zivotinja->slje ) {
  141. pomocna_zivotinja=pomocna_zivotinja->slje;
  142. br++;
  143. }
  144. return br;
  145. }
  146.  
  147. t* InitL( t*list_head )
  148. {
  149. list_head= new t;
  150. list_head->slje=NULL;
  151. return list_head;
  152. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.