Posted By

m_kovacek on 11/10/12


Tagged

list lista adt Strukture podataka polja ATP


Versions (?)

Implementacija liste pomocu polja


 / Published in: C++
 

Implementacija liste pomocu pokazivaca sadrzi funkcije poput: FirstL(L), EndL(L),NextL(p,L),PreviousL(p,L), LocateL(x,L), InsertL(x,p,L), DeleteL(p,L), RetreiveL(p,L), DeleteAllL(L) i InitL(L)

  1. #include <iostream>
  2. using namespace std;
  3. #define LISTA_POLJE_H
  4.  
  5.  
  6.  
  7. struct zivotinje {
  8. int sifra;
  9. char vrsta[30],naziv[30];
  10. float cijena;
  11. int datum;
  12. };
  13.  
  14. struct lista{
  15. zivotinje elem[1000];
  16. int kursor;
  17. };
  18. typedef struct lista l;
  19. typedef int element;
  20.  
  21.  
  22. int EndL(lista *l)
  23. {
  24. return ((*l).kursor);
  25. }
  26.  
  27. int FirstL (lista *l)
  28. { if ((*l).kursor==0)
  29. return EndL(l);
  30. else
  31. return (0);
  32. }
  33.  
  34. element NextL (element p , lista *l)
  35. { if (p==(*l).kursor)
  36. cout<<"Funkcija je nedefinirana"<<endl;
  37. else
  38. return (p+1);
  39. }
  40.  
  41. element PreviousL(element p , lista *l)
  42. { if(p==0)
  43. cout<<"Funkcija je nedefinirana"<<endl;
  44. else
  45. return (p-1);
  46. }
  47.  
  48. element LocateL(zivotinje x, lista *l)
  49. {
  50. if((*l).kursor==0)
  51. {
  52. cout<<"Lista je prazna"<<endl;
  53. exit(0);
  54. }
  55.  
  56. else
  57. {
  58. int i;
  59. i=0;
  60. while(i!=(*l).kursor)
  61. {
  62. if(strcmp(x.naziv, (*l).elem[i].naziv)==0)
  63. return i;
  64.  
  65. i++;
  66. }
  67. }
  68.  
  69.  
  70. }
  71. element Locatel(zivotinje x, lista *l)
  72.  
  73. {
  74. if((*l).kursor==0)
  75. {
  76. cout<<"Lista je prazna"<<endl;
  77. exit(0);
  78. }
  79.  
  80. else
  81. {
  82. int i;
  83. i=0;
  84. while(i!=(*l).kursor)
  85. {
  86. if(strcmp(x.vrsta, (*l).elem[i].vrsta)==0)
  87. return i;
  88.  
  89. i++;
  90. }
  91. }
  92.  
  93. }
  94.  
  95.  
  96. element InsertL (zivotinje x, int p , lista *l)
  97. { for(int i=EndL(l); i>p;i--)
  98. (*l).elem[i]=(*l).elem[i-1];
  99. (*l).elem[p]=x;
  100. (*l).kursor=(*l).kursor+1;
  101. if((*l).elem[p].sifra==x.sifra)
  102. return 1;
  103. else
  104. return 0;
  105. }
  106.  
  107. element DeleteL (element p, lista*l)
  108. {
  109. if((p<(*l).kursor)&&(p>=0))
  110. {
  111. for(int i=p; i<(*l).kursor; i++)
  112. (*l).elem[i]=(*l).elem[i+1];
  113. (*l).kursor--;
  114.  
  115. }
  116. else
  117. {
  118. cout<<"Nepostojeci element liste"<<endl;
  119. return 0;
  120. }
  121.  
  122. }
  123.  
  124. zivotinje RetrieveL (element p, lista *l)
  125. {
  126. return (*l).elem[p];
  127. }
  128.  
  129. element DeleteallL (lista *l)
  130. {
  131. (*l).kursor=0;
  132. }
  133.  
  134. lista *InitL (lista *l)
  135. { l=new lista;
  136. (*l).kursor=0;
  137. return l;
  138. }

Report this snippet  

You need to login to post a comment.