Posted By

ddumic on 11/12/12


Tagged


Versions (?)

lista_pokazivac.h


 / Published in: C++
 

Datoteka zaglavlja "lista_pokazivac.h"

  1. using namespace std;
  2. int sifra=1;
  3.  
  4. struct tzivotinja {
  5. int sifra;
  6. char vrsta[30],naziv[30];
  7. float cijena;
  8. tm datum;
  9. tzivotinja *sljedeci;
  10. };
  11.  
  12. tzivotinja *lista = new tzivotinja;
  13.  
  14. void initL(tzivotinja *lista){
  15. lista->sljedeci = NULL;
  16. }
  17.  
  18. int endL(tzivotinja *lista){
  19. tzivotinja *tekuci = lista;
  20. int b=1;
  21. while(tekuci->sljedeci){
  22. tekuci=tekuci->sljedeci;
  23. b++;
  24. }
  25. return b;
  26. }
  27.  
  28. int firstL(tzivotinja *lista){
  29. if(lista->sljedeci == NULL) return endL(lista);
  30. else return 0;
  31. }
  32.  
  33. int previousL(int p,tzivotinja *lista){
  34. if(p == firstL(lista)) return -1;
  35. else return p-1;
  36. }
  37.  
  38.  
  39.  
  40. tzivotinja retrieveL(int p, tzivotinja *lista){
  41. tzivotinja *tekuci = lista->sljedeci;
  42. for(int i=0;i<p;i++) tekuci = tekuci->sljedeci;
  43. return *tekuci;
  44. }
  45.  
  46. int locateL(int v, tzivotinja *lista){
  47. tzivotinja *tekuci = lista->sljedeci;
  48. int br = 0;
  49. while(tekuci){br++;
  50. tekuci = tekuci->sljedeci;
  51. }
  52. return br;
  53. }
  54.  
  55. tzivotinja * nextL(int p,tzivotinja *lista){
  56. if(p == endL(lista)) return NULL;
  57. else{
  58. tzivotinja tekuci = retrieveL(p,lista);
  59. return tekuci.sljedeci;}
  60. }
  61.  
  62.  
  63. void Vrati(tzivotinja element,int p, tzivotinja* lista) {
  64. tzivotinja *tekuci=lista->sljedeci;
  65. for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
  66. tekuci->sifra = element.sifra;
  67. tekuci->cijena = element.cijena;
  68. strcpy(tekuci->naziv,element.naziv);
  69. strcpy(tekuci->vrsta,element.vrsta);
  70. tekuci->datum = element.datum;
  71. }
  72.  
  73.  
  74.  
  75. void reverse(tzivotinja *lista)
  76. {
  77. if(lista->sljedeci == NULL) return;
  78.  
  79. tzivotinja *prev = NULL, *current = NULL, *next = NULL;
  80. current = lista->sljedeci;
  81. while(current != NULL){
  82. next = current->sljedeci;
  83. current->sljedeci = prev;
  84. prev = current;
  85. current = next;
  86. }
  87. // now let the head point at the last node (prev)
  88. lista->sljedeci = prev;
  89. }
  90.  
  91. int insertL(tzivotinja *novi, int p, tzivotinja *lista){
  92. tzivotinja *tekuci = lista;
  93.  
  94. for(int i=1;i<p;i++)
  95. tekuci = tekuci->sljedeci;
  96. novi->sljedeci = tekuci->sljedeci;
  97. tekuci->sljedeci = novi;
  98.  
  99. sifra++;
  100. if((tekuci->sljedeci)->sifra == novi->sifra) return 1;
  101. else return 0;
  102. }
  103.  
  104.  
  105.  
  106. void deleteL(int p, tzivotinja *lista){
  107. tzivotinja *tekuci = lista->sljedeci;
  108. tzivotinja *prethodni = lista;
  109.  
  110. for(int i=0;i<p;i++){
  111. tekuci = tekuci->sljedeci;
  112. prethodni = prethodni->sljedeci;
  113. }
  114. prethodni->sljedeci = tekuci->sljedeci;
  115. delete tekuci;
  116. }

Report this snippet  

You need to login to post a comment.