Posted By

nikym23 on 11/12/12


Tagged

listapolje


Versions (?)

Lista_polje.H Struktere podataka


 / Published in: C++
 

u ovoj bibljioteci se nalazi funkcije liste pomoću polja koje se kotsire u glavnom programu.

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

Report this snippet  

You need to login to post a comment.