Posted By

dario_kovacic on 11/13/12


Tagged


Versions (?)

lista_polje.h


 / Published in: C++
 

biblioteka sadrži implementaciju liste pomoću polja (strukture podataka, zadatak 1)

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

Report this snippet  

You need to login to post a comment.