Posted By

josiptrupina1 on 11/11/12


Tagged

ATPlista Implementacijalistepomocupokazivaca


Versions (?)

Implementacija liste pomocu pokazivaca


 / Published in: C++
 

Ovo je header u kojem je radjena implementacija liste pomocu pokazivaca.

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct tzivotinja{
  5. int sifra;
  6. char vrsta[30];
  7. char naziv[30];
  8. float cijena;
  9. int datum;
  10. };
  11.  
  12. struct tlista{
  13. tzivotinja zivotinja;
  14. tlista *sljedeci;
  15. };
  16.  
  17. typedef tlista* el;
  18.  
  19. tlista *FirstL(tlista *glava){
  20. return glava->sljedeci;
  21. }
  22.  
  23. tlista *EndL(tlista *glava){
  24. el zadnji;
  25. zadnji=glava;
  26. while(zadnji->sljedeci)zadnji=zadnji->sljedeci;
  27. return zadnji->sljedeci;
  28. }
  29.  
  30. tlista *NextL(el p,tlista *glava){
  31. return p->sljedeci;
  32. }
  33.  
  34. tlista *PreviousL(el p,tlista *glava){
  35. if(p==FirstL(glava)) cout << "Funkcija je nedefinirana!" << endl;
  36. else if(p==EndL(glava)) return p;
  37. else{
  38. tlista *tekuci,*prethodni;
  39. tekuci=glava->sljedeci;
  40. prethodni=glava;
  41. while(p!=tekuci){
  42. tekuci=tekuci->sljedeci;
  43. prethodni=prethodni->sljedeci;}
  44. return prethodni;
  45. }
  46. }
  47.  
  48. tlista *LocateL(char x[30], tlista *glava){
  49. tlista *tekuci;
  50. tekuci=glava->sljedeci;
  51. while(tekuci){
  52. if(strcmp(tekuci->zivotinja.naziv,x)==0) return tekuci;
  53. if(strcmp(tekuci->zivotinja.vrsta,x)==0) return tekuci;
  54. tekuci=tekuci->sljedeci;
  55. }
  56. cout<<"takav element ne postoji!"<<endl;
  57. return EndL(glava);
  58. };
  59.  
  60. void InsertL(tzivotinja x,el pozicija,tlista *glava){
  61. el novi,prethodni,tekuci;
  62. prethodni=glava;
  63. tekuci=glava->sljedeci;
  64. while(tekuci!=pozicija){
  65. tekuci=tekuci->sljedeci;
  66. prethodni=prethodni->sljedeci;}
  67. novi=new tlista;
  68. novi->sljedeci=prethodni->sljedeci;
  69. prethodni->sljedeci=novi;
  70. novi->zivotinja=x;
  71.  
  72. };
  73.  
  74. void DeleteL(el p,tlista *glava){
  75. el brisi,prethodni;
  76. prethodni=glava;
  77. brisi=glava->sljedeci;
  78. while(brisi!=p){
  79. prethodni=prethodni->sljedeci;
  80. brisi=brisi->sljedeci;}
  81. if(brisi==p){
  82. prethodni->sljedeci=brisi->sljedeci;
  83. delete brisi;
  84. }
  85. else cout<<"Nema tog elementa!"<<endl;
  86. };
  87.  
  88. tzivotinja RetreiveL(el p,tlista *glava){
  89. tlista *trazeni;
  90. trazeni=glava;
  91. while(trazeni!=p){
  92. trazeni=trazeni->sljedeci;}
  93. if(trazeni==p){return trazeni->zivotinja;}
  94.  
  95. else cout<<"Nema tog elementa"<<endl;
  96. };
  97.  
  98. void DeleteAllL(tlista *glava){
  99.  
  100. tlista *brisi=glava;
  101. while(glava->sljedeci!=NULL)
  102. {
  103. brisi=glava->sljedeci;
  104. glava->sljedeci=brisi->sljedeci;
  105. delete brisi;
  106. }
  107. };
  108.  
  109. void InitL(tlista *glava){
  110. glava->sljedeci=NULL;
  111. }

Report this snippet  

You need to login to post a comment.