Posted By

ahuskano on 11/11/12


Tagged

lista Strukture podataka polja ATP


Versions (?)

Lista_polja.h


 / Published in: C++
 

Source code biblioteke lista_polja.h gdje je implementiran ATP lista pomoću polja

  1. struct elem{
  2. int sifra;
  3. char vrsta[35], naziv[35],datum[12];
  4. float cijena;
  5. };
  6. struct lista{
  7. elem detalji[10000];
  8. int cursor;
  9. };
  10. typedef int element;
  11.  
  12. lista *InitL(lista *x){
  13. x=new lista;
  14. x->cursor=0;
  15. return x;
  16. }
  17. element EndL(lista *x){
  18. return x->cursor;
  19. }
  20. element FirstL(lista *x){
  21. if(x->cursor==0)
  22. return EndL(x);
  23. else
  24. return 0;
  25. }
  26. element PreviousL(element e, lista *x){
  27. if(e<=FirstL(x))
  28. return 0;
  29. else
  30. return e-1;
  31. }
  32. element NextL(element e, lista *x){
  33. if(e==x->cursor)
  34. return x->cursor;
  35. return e+1;
  36. }
  37. elem RetreiveL(element e,lista *x){
  38. return x->detalji[e];
  39. }
  40. int InsertL(elem e, element p, lista *x){
  41. int i=EndL(x);
  42. while(i>p)
  43. x->detalji[i]=x->detalji[--i];
  44. x->detalji[p]=e;
  45. x->cursor++;
  46. if(e.sifra==x->detalji[p].sifra)
  47. return 1;
  48. else
  49. return 0;
  50. }
  51.  
  52.  
  53. element LocateL(elem e, lista *x){
  54. if(e.sifra==-1){
  55. for(int i=0;i<EndL(x);i++)
  56. if(strcmp(e.naziv,x->detalji[i].naziv)==0)
  57. return i;
  58. }
  59. else if(e.sifra==-2){
  60. for(int i=0;i<EndL(x);i++)
  61. if(strcmp(e.vrsta,x->detalji[i].vrsta)==0)
  62. return i;
  63. }return EndL(x);
  64. }
  65. int DeleteL(element e, lista *x){
  66. if(e==EndL(x))
  67. return 0;
  68. for(int i=e;i<EndL(x);i++)
  69. x->detalji[i]=x->detalji[i+1];
  70. x->cursor--;
  71. return 1;
  72. }
  73. void DeleteAll(lista *x){
  74. x->cursor=0;
  75. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: dpavlovi on November 11, 2012

Datum je implementiran na drugačiji način nego u mojemo kodu, no funkcije su izvedene jednostavno i efikasno.

You need to login to post a comment.