Evidencija zivotinja - lista_polje.h


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

Implementacija liste pomocu polja


Copy this code and paste it in your HTML
  1. using namespace std;
  2.  
  3. struct Zivotinja {
  4. int sifra;
  5. char vrsta[30];
  6. char naziv[30];
  7. float cijena;
  8. struct {
  9. int dan, mjesec,godina;
  10. }datum_dostave;
  11. };
  12.  
  13. typedef int element;
  14.  
  15. struct List {
  16. Zivotinja zivotinja[10000];
  17. int cursor;
  18. };
  19.  
  20. typedef struct List lista;
  21.  
  22. element FirstL(lista *L) {
  23. return 0;
  24. }
  25. element EndL(lista *L) {
  26. return L->cursor;
  27. }
  28. element NextL(element p, lista *L) {
  29. if(p==EndL(L)) return -1;
  30. return p+1;
  31. }
  32. element PreviousL(element p, lista *L) {
  33. if(p==FirstL(L)) return -1;
  34. return p-1;
  35. }
  36. element LocateL (Zivotinja x, lista * L){
  37. if (x.naziv == 0) {
  38. for (element i=0; i < L->cursor; i++){
  39. if (L->zivotinja[i].sifra== x.sifra) return i;
  40. }
  41. return L->cursor;
  42. } else {
  43. for (element i=0; i < L->cursor; i++){
  44. if (L->zivotinja[i].naziv== x.naziv) return i;
  45. }
  46. return L->cursor;
  47. }
  48. }
  49.  
  50. int InsertL(Zivotinja x, element p, lista *L) {
  51. L->cursor++;
  52. for(int i=L->cursor-2; i>=p; i--) {
  53. L->zivotinja[i+1]=L->zivotinja[i];
  54. }
  55. L->zivotinja[p]=x;
  56. if(L->zivotinja[p].sifra==x.sifra) return 1;
  57. else return 0;
  58. }
  59. int DeleteL(element p, lista *L) {
  60. for(int i=p; i<L->cursor-1; i++) {
  61. L->zivotinja[i]=L->zivotinja[i+1];
  62. }
  63. if(p>=FirstL(L) && p<L->cursor) {
  64. L->cursor--;
  65. return 1;
  66. }
  67. else return 0;
  68. }
  69. Zivotinja RetreiveL(element p, lista *L) {
  70. return L->zivotinja[p];
  71. }
  72. void DeleteAllL(lista *L) {
  73. L->cursor=0;
  74. }
  75. lista *InitL(lista *L) {
  76. L=new lista;
  77. L->cursor=0;
  78. return L;
  79. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.