Posted By

dmikulin on 11/12/12


Tagged

polje


Versions (?)

lista_polje.h


 / Published in: C++
 

URL: asd

Zaglavlje pomoću polja

  1. typedef int elem;
  2.  
  3. struct zivotinje{
  4. int sifra;
  5. char naziv[30];
  6. char vrsta[30];
  7. float cijena;
  8. struct{
  9. int dan, mj, god;
  10. }datum;
  11. };
  12.  
  13. struct Lis {
  14. zivotinje 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. elem FirstL(list* L){
  32. return 0;
  33. }
  34.  
  35. elem EndL(list* L){
  36. return L->cursor;
  37. }
  38.  
  39. elem NextL(elem p, list* L){
  40. if(p == L->cursor)
  41. return L->cursor;
  42. return p+1;
  43. }
  44.  
  45. elem PreviousL(elem p, list* L){
  46. if(p==0)
  47. return 0;
  48. return p-1;
  49. }
  50.  
  51. elem LocateL(zivotinje el, list* L){
  52. for(elem trenutni = FirstL(L); trenutni != EndL(L); trenutni = NextL(trenutni,L)){
  53. if(el.sifra == L->values[trenutni].sifra)
  54. return trenutni;
  55. }
  56. return EndL(L);
  57. }
  58.  
  59. void InsertL(zivotinje el, elem p, list* L){
  60. for(elem trenutni = L->cursor; trenutni > p; trenutni--){
  61. L->values[trenutni] = L->values[trenutni-1];
  62. }
  63. L->values[p] = el;
  64. L->cursor++;
  65. }
  66.  
  67. void DeleteL(elem p, list* L){
  68. for(elem trenutni = p; trenutni < L->cursor-1; trenutni++){
  69. L->values[trenutni] = L->values[trenutni+1];
  70. }
  71. L->cursor--;
  72. }
  73.  
  74. zivotinje RetrieveL(elem 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.