Posted By

idurlen1 on 11/28/12


Tagged

data lista structures Strukture podataka polje


Versions (?)

lista_polje.h


 / Published in: C++
 

datoteka zaglavlja lista_polje.h

  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. struct podaci{
  6. long sifra;
  7. char naziv[50], vrsta[60];
  8. float cijena;
  9. int dan, mj, god;
  10. };// struct podaci;
  11.  
  12. struct {
  13. podaci zivotinje[1000];
  14. int kursor;
  15. }Lista; // struct listaP;
  16.  
  17. //ispis liste od kraja
  18.  
  19. int FirstL(){
  20. if (Lista.kursor != 0)
  21. return 0;
  22. }// FirstL();
  23.  
  24. int LastL(){
  25. if (Lista.kursor == 0){
  26. return 0;
  27. }
  28. return Lista.kursor;
  29. }// LastL();
  30.  
  31. int NextL(int pozicija){
  32. if (pozicija >= Lista.kursor || pozicija <0)
  33. cout << "Pogreska ! Element je izvan dosega! " << endl;
  34. else
  35. return pozicija+1;
  36. }// NextL();
  37.  
  38. int PreviousL(int pozicija){
  39. if (pozicija > Lista.kursor || pozicija <=0)
  40. cout << "Pogreska ! Element je izvan dosega! " << endl;
  41. else
  42. return pozicija-1;
  43. }// NextL();
  44.  
  45. int LocateL1(char naziv[]){
  46. int i, j, pozicija;
  47. i = FirstL();
  48. j = LastL();
  49. bool nadjeno = false;
  50.  
  51. for (i; i<j; i++)
  52. if (strcmp(Lista.zivotinje[i].naziv, naziv) == 0){
  53. pozicija = i;
  54. nadjeno = true;
  55. break;
  56. }
  57.  
  58. if (nadjeno)
  59. return i;
  60. else
  61. return -1;
  62. }// LocateL1();
  63.  
  64. int LocateL2(char naziv[]){
  65. int i, j, pozicija;
  66. i = FirstL();
  67. j = LastL();
  68. bool nadjeno = false;
  69.  
  70. for (i; i<j; i++)
  71. if (strcmp(Lista.zivotinje[i].vrsta, naziv) == 0){
  72. pozicija = i;
  73. nadjeno = true;
  74. break;
  75. }
  76.  
  77. if (nadjeno)
  78. return i;
  79. else
  80. return -1;
  81. }// LocateL2();
  82.  
  83. int InsertL(int pozicija, podaci P){
  84. int i,j;
  85. j = LastL();
  86.  
  87. if (pozicija < j && pozicija >=0){
  88. for (i = j-1; i >= pozicija; i--){
  89. Lista.zivotinje[i+1] = Lista.zivotinje[i];
  90. }
  91. Lista.zivotinje[pozicija] = P;
  92. Lista.kursor++;
  93. }
  94. else if (pozicija == j){
  95. Lista.zivotinje[pozicija] = P;
  96. Lista.kursor++;
  97. }
  98. else
  99. return -1;
  100.  
  101. }// InsertL();
  102.  
  103. int DeleteL1(char naziv[]){
  104. int i, j, pozicija;
  105. j = LastL()-1;
  106. pozicija = LocateL1(naziv);
  107.  
  108. if(pozicija == -1)
  109. return 0;
  110. else if(pozicija == j){
  111. Lista.kursor--;
  112. return 1;
  113. }
  114. else if(pozicija >= 0 && pozicija<j){
  115. for(i = pozicija; i<j; i++)
  116. Lista.zivotinje[i] = Lista.zivotinje[i+1];
  117. Lista.kursor--;
  118. return 1;
  119. }
  120. }// DeleteL1();
  121.  
  122. int DeleteL2(char naziv[]){
  123. int i, j, pozicija;
  124. j = LastL()-1;
  125. pozicija = LocateL2(naziv);
  126.  
  127. if(pozicija == -1)
  128. return 0;
  129. else if(pozicija == j){
  130. Lista.kursor--;
  131. return 1;
  132. }
  133. else if(pozicija >= 0 && pozicija<j){
  134. for(i = pozicija; i<j; i++)
  135. Lista.zivotinje[i] = Lista.zivotinje[i+1];
  136. Lista.kursor--;
  137. return 1;
  138. }
  139. }// DeleteL1();
  140.  
  141. podaci RetreiveL(int indeks){
  142. if (indeks < 0 || indeks >= Lista.kursor)
  143. cout << "Greška!\nIndeks je izvan dosega liste! " << endl;
  144. else
  145. return Lista.zivotinje[indeks];
  146.  
  147. }// RetrieveL();
  148.  
  149.  
  150. void DeleteAll(){
  151. Lista.kursor = 0;
  152. }// DeleteAll();
  153.  
  154. void InitL(){
  155. Lista.kursor = 0;
  156. }// InitL();

Report this snippet  

You need to login to post a comment.