Posted By

milan_pavlovic on 11/11/12


Tagged

list array lista polje


Versions (?)

lista_polje.h


 / Published in: C++
 

Datoteka zaglavlja koja sadrži osnovne funkcije za rad s elementima liste implementirane pomoću polja.

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

Report this snippet  

You need to login to post a comment.