Posted By


ihranj on 11/12/12

Tagged


Statistics


Viewed 41 times
Favorited by 0 user(s)

hranj_lista_pokazivaci.h


/ Published in: C++
Save to your folder(s)

funkcija zaglavlja koja će nam biti potrebna u main programu


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. struct tzivotinje{
  6. int sifra;
  7. char vrsta[51];
  8. char naziv[51];
  9. int cijena;
  10. float datum;
  11. int godina;
  12. };
  13.  
  14. struct tlista{
  15. tzivotinje zivotinje;
  16. tlista *sljedeci;
  17. };
  18.  
  19. typedef tlista *element;
  20.  
  21. element FirstL(tlista *l){
  22. return l->sljedeci;
  23. }
  24.  
  25. element EndL(tlista *l){
  26. tlista *tekuci = l;
  27. while(tekuci->sljedeci)
  28. tekuci=tekuci->sljedeci;
  29. return tekuci;
  30. }
  31.  
  32. element NextL(element p, tlista *l){
  33. if(p->sljedeci==NULL) return EndL(l);
  34. return p->sljedeci;
  35. }
  36.  
  37. element PreviousL(element p, tlista *l){
  38. tlista *tekuci = l->sljedeci;
  39. while(p != tekuci->sljedeci && tekuci->sljedeci!=NULL)
  40. tekuci=tekuci->sljedeci;
  41. return tekuci;
  42. }
  43.  
  44. element LocateL(tzivotinje z, tlista *l){
  45. element tekuci;
  46. tekuci = l->sljedeci;
  47. while(tekuci){
  48. if(z.naziv!=0){
  49.  
  50. if(strcmp(z.naziv,tekuci->zivotinje.naziv)==0)
  51. return tekuci;
  52. }
  53. if(z.vrsta!=0) {
  54. if(strcmp(z.vrsta,tekuci->zivotinje.vrsta)==0)
  55. return tekuci;
  56. }
  57.  
  58. tekuci = tekuci->sljedeci;
  59. }
  60. return EndL(l);
  61. }
  62.  
  63. int InsertL(tzivotinje z, tlista *p, tlista *l){
  64. tlista *tekuci = p;
  65. tlista *novi = new tlista;
  66.  
  67. if(p==EndL(l)){
  68. novi->sljedeci=NULL;
  69. tekuci->sljedeci = novi;
  70. tekuci->zivotinje = z;
  71. }
  72. else if(p==FirstL(l)){
  73. novi->sljedeci = tekuci;
  74. l->sljedeci = novi;
  75. novi->zivotinje = z;
  76. }
  77. else{
  78. tlista *prethodni = PreviousL(p,l);
  79. novi->sljedeci=tekuci;
  80. prethodni->sljedeci = novi;
  81. novi->zivotinje = z;
  82. }
  83. if(tekuci->zivotinje.sifra==z.sifra)
  84. return 1;
  85. else
  86. return 0;
  87. }
  88.  
  89. int DeleteL(element p, tlista *l){
  90. element prethodni, tekuci;
  91. tekuci = p;
  92. if(p==FirstL(l)){
  93. l->sljedeci = tekuci->sljedeci;
  94. delete tekuci;
  95. return 1;
  96. }
  97. else{
  98. prethodni = PreviousL(tekuci,l);
  99. prethodni->sljedeci = tekuci->sljedeci;
  100. delete tekuci;
  101. return 1;
  102. }
  103. return 0;
  104. }
  105.  
  106. tzivotinje RetrieveL(element p, tlista *l){
  107. return p->zivotinje;
  108. }
  109.  
  110. element DeleteAllL(tlista *l){
  111. l->sljedeci = EndL(l);
  112. }
  113.  
  114. tlista* InitL(tlista *l){
  115. l = new tlista;
  116. tlista *zadnji = new tlista;
  117. l->sljedeci = zadnji;
  118. zadnji->sljedeci = NULL;
  119. return l;
  120. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.