Posted By

daja2 on 11/12/12


Tagged

listapolje


Versions (?)

lista_polje.h


 / Published in: C++
 

implementacija liste pomocu polja

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

Report this snippet  

You need to login to post a comment.