Posted By

supavkovii on 11/11/12


Tagged

lista polje


Versions (?)

lista_polje.h


 / Published in: C++
 

datoteka zaglavlja s funkcijama za implementaciju liste pomoću polja

  1. struct zivotinja2{
  2. int sifra;
  3. char vrsta[20],naziv[20];
  4. float cijena;
  5. char datum[15];
  6. };
  7. union zivotinja{
  8. zivotinja2 P[100];
  9. int kursor;
  10. };
  11.  
  12. typedef zivotinja2 pomocna;
  13. typedef int tip;
  14.  
  15. zivotinja* InitL(zivotinja *lista){
  16. lista = new zivotinja;
  17. lista->kursor=0;
  18. return lista;
  19. }
  20.  
  21. int EndL(zivotinja *lista){
  22. return lista->kursor;
  23. }
  24.  
  25. int FirstL(zivotinja *lista){
  26. if(lista->kursor==0) return EndL(lista);
  27. return 0;
  28. }
  29.  
  30. int NextL(int p, zivotinja *lista){
  31. if(p>=lista->kursor || p<0) return 0; // nije definirana funkcija
  32. return p+1;
  33. }
  34. int PreviousL(int p, zivotinja *lista){
  35. if(p>lista->kursor || p<0) return 0; // nije definirana funkcija
  36. return p-1;
  37. }
  38. int LocateL(int sifra, zivotinja *lista){// trazi sifru
  39. int index=0;
  40. while(index<lista->kursor){
  41. if(lista->P[index].sifra==sifra) return index;
  42. index++;
  43. }
  44. return EndL(lista);
  45. }
  46. bool InsertL(zivotinja2 pomocna2, int p, zivotinja *lista){// na p dodajemo pomocna
  47. if(p > lista->kursor) return false;
  48. /*else {
  49. //if(p!=EndL(lista)) p+=1;
  50. int pom=lista->kursor;
  51. while(p<pom){
  52.   lista->P[pom].sifra=lista->P[pom-1].sifra;
  53.   lista->P[pom].cijena=lista->P[pom-1].cijena;
  54.   std::cout << "hauk";
  55. strcpy(lista->P[pom].datum,lista->P[pom-1].datum);
  56. strcpy(lista->P[pom].vrsta,lista->P[pom-1].vrsta);
  57. strcpy(lista->P[pom].naziv,lista->P[pom-1].naziv);
  58. pom--;
  59. }
  60. std::cout << "hauk2";*/
  61. lista->P[p].sifra=pomocna2.sifra;
  62. lista->P[p].cijena=pomocna2.cijena;
  63. strcpy(lista->P[p].datum,pomocna2.datum);
  64. strcpy(lista->P[p].vrsta,pomocna2.vrsta);
  65. strcpy(lista->P[p].naziv,pomocna2.naziv);
  66. lista->kursor++;
  67. return true;
  68. //}
  69. }
  70. zivotinja2 RetrieveL(int p, zivotinja *lista){
  71. if (p<lista->kursor && p>=0) {
  72. zivotinja2 pom;
  73. pom.sifra=lista->P[p].sifra;
  74. pom.cijena=lista->P[p].cijena;
  75. strcpy(pom.datum,lista->P[p].datum);
  76. strcpy(pom.vrsta,lista->P[p].vrsta);
  77. strcpy(pom.naziv,lista->P[p].naziv);
  78. return pom;
  79. }
  80. }
  81. bool DeleteL(int p, zivotinja *lista){
  82. if (p<lista->kursor && p>=0) {
  83. int pom=p;
  84. while(pom<lista->kursor){
  85. lista->P[pom].sifra=lista->P[pom+1].sifra;
  86. lista->P[pom].cijena=lista->P[pom+1].cijena;
  87. strcpy(lista->P[pom].datum,lista->P[pom+1].datum);
  88. strcpy(lista->P[pom].vrsta,lista->P[pom+1].vrsta);
  89. strcpy(lista->P[pom].naziv,lista->P[pom+1].naziv);
  90. pom--;
  91. }
  92. lista->kursor--;
  93. return true;
  94. }
  95. else return false;
  96. }
  97. void DeleteAllL(zivotinja *lista){
  98. lista->kursor=0;
  99. }

Report this snippet  

You need to login to post a comment.