Posted By

dfilipov on 11/12/12


Tagged

Strukture podataka foi zadatak zivotinje


Versions (?)

SP Zadatak 1 - implementacija pomocu polja


 / Published in: C++
 

Zaglavlje lista_polje.h

  1. struct s_datum {
  2. unsigned int dan;
  3. unsigned int mjesec;
  4. unsigned int godina;
  5. };
  6.  
  7. struct s_zapis {
  8. short sifra;
  9. char vrsta[50];
  10. char naziv[50];
  11. float cijena;
  12. s_datum datum;
  13. };
  14.  
  15. struct lista {
  16. s_zapis zapis[100];
  17. int cursor;
  18. };
  19. typedef int element;
  20.  
  21.  
  22. element EndL(lista *L) {
  23. return L->cursor;
  24. }
  25.  
  26. element FirstL(lista *L) {
  27. if (L->cursor == NULL)
  28. return EndL(L);
  29. else
  30. return 0;
  31. }
  32.  
  33. element NextL(element p, lista *L) {
  34. if (p == EndL(L))
  35. return -1;
  36. else
  37. return p+1;
  38. }
  39.  
  40. element PreviousL(element p, lista *L) {
  41. if (p == FirstL(L))
  42. return -1;
  43. else
  44. return p-1;
  45. }
  46.  
  47. element LocateL(s_zapis X, lista *L) {
  48. for (int i=0; i < EndL(L); i++)
  49. if (!strcmp(X.vrsta, L->zapis[i].vrsta))
  50. return i;
  51. else if (!strcmp(X.naziv, L->zapis[i].naziv))
  52. return i;
  53.  
  54. return EndL(L);
  55. }
  56.  
  57. bool InsertL(s_zapis X, element p, lista *L) {
  58. if (p > L->cursor) return false;
  59. else {
  60. for (int i=L->cursor; i >= p; i--) {
  61. L->zapis[i+1] = L->zapis[i];
  62. }
  63.  
  64. L->zapis[p] = X;
  65.  
  66. L->cursor++;
  67. return true;
  68. }
  69. }
  70.  
  71. bool DeleteL(element p, lista *L) {
  72. if (p > L->cursor)
  73. return false;
  74.  
  75. for (int i=p; i<L->cursor; i++) {
  76. L->zapis[i] = L->zapis[i+1];
  77. }
  78. L->cursor--;
  79. return true;
  80. }
  81.  
  82. s_zapis RetrieveL(element p, lista *L) {
  83. return L->zapis[p];
  84. }
  85.  
  86. lista *InitL(lista *L) {
  87. L = new lista;
  88. L->cursor = 0;
  89. return L;
  90. }

Report this snippet  

You need to login to post a comment.