Posted By

msestak2 on 11/10/12


Tagged

initl endl locatel retrievel deletl insertl


Versions (?)

Lista_polje.h


 / Published in: C++
 

U ovoj biblioteci su definirane funkcije za izvršavanje operacija nad ATP listom: iniciranje prazne liste(InitL), funkcije koje vraćaju pozicije prvog i zadnjeg elementa(FirstL i EndL), funkcija za umetanje elementa(InsertL), funkcija koja vraća vrijednost elementa na nekoj poziciji(RetrieveL) te funkcije za brisanje pojedinog elementa(DeleteL) ili cijele liste(DeleteAllL).

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

Report this snippet  

You need to login to post a comment.