Zadatak 1 Lista pokazivači Mario Milutin


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

Pošto se radi o strogo zadanim funkcijama koje su iste svim studentima, nema nekih prevelikih razlika u kodu osim u drugačijim nazivima varijabli te rasporedu pisanja samih funkcija.


Copy this code and paste it in your HTML
  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. lista->sljedeci = prev;
  88. }
  89.  
  90. int insertL(tzivotinja *novi, int p, tzivotinja *lista){
  91. tzivotinja *tekuci = lista;
  92.  
  93. for(int i=1;i<p;i++)
  94. tekuci = tekuci->sljedeci;
  95. novi->sljedeci = tekuci->sljedeci;
  96. tekuci->sljedeci = novi;
  97.  
  98. sifra++;
  99. if((tekuci->sljedeci)->sifra == novi->sifra) return 1;
  100. else return 0;
  101. }
  102.  
  103.  
  104.  
  105. void deleteL(int p, tzivotinja *lista){
  106. tzivotinja *tekuci = lista->sljedeci;
  107. tzivotinja *prethodni = lista;
  108.  
  109. for(int i=0;i<p;i++){
  110. tekuci = tekuci->sljedeci;
  111. prethodni = prethodni->sljedeci;
  112. }
  113. prethodni->sljedeci = tekuci->sljedeci;
  114. delete tekuci;
  115. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.