Posted By

dmikulin on 11/12/12


Tagged

pokazivaci


Versions (?)

lista_pokazivac.h


 / Published in: C++
 

Zaglavlje pomoću pokazivača

  1. typedef lis *elem;
  2. typedef lis list;
  3.  
  4.  
  5. struct zivotinje{
  6. int sifra;
  7. char naziv[30];
  8. char vrsta[30];
  9. float cijena;
  10. struct{
  11. int dan, mj, god;
  12. }datum;
  13. };
  14.  
  15. struct lis {
  16. zivotinje value;
  17. lis *Next;
  18. };
  19.  
  20.  
  21.  
  22. void DeleteAllL(list* L){
  23. while(L->Next){
  24. elem toDelete = L->Next;
  25. if(L->Next){
  26. L->Next = toDelete->Next;
  27. delete toDelete;
  28. }
  29. }
  30. delete L;
  31. L = NULL;
  32. }
  33.  
  34.  
  35. list* InitL(list* L){
  36. if(L!=NULL)
  37. DeleteAllL(L);
  38. else{
  39. list *newList = new list;
  40. newList->Next = NULL;
  41. return newList;
  42. }
  43. return NULL;
  44. }
  45.  
  46. elem FirstL(list* L){
  47. return L;
  48. }
  49.  
  50. elem EndL(list* L){
  51. elem trenutni = L;
  52. while(trenutni->Next){
  53. trenutni = trenutni->Next;
  54. }
  55. return trenutni;
  56. }
  57.  
  58. elem NextL(elem p, list *L){
  59. if(p!=NULL){
  60. if(p==EndL(L)){
  61. return NULL;
  62. }
  63. return p->Next;
  64. }
  65. return EndL(L);
  66. }
  67.  
  68. elem PreviousL(elem p, list *L){
  69. elem trenutni = L;
  70. while(trenutni){
  71. if(trenutni->Next == p )
  72. return trenutni;
  73. trenutni = trenutni->Next;
  74. }
  75. return NULL;
  76. }
  77.  
  78. elem LocateL(zivotinje el, list* L){
  79. elem trenutni = L;
  80. while(trenutni->Next){
  81. if(trenutni->Next->value.sifra == el.sifra)
  82. return trenutni;
  83. trenutni = trenutni->Next;
  84. }
  85. return NULL;
  86. }
  87.  
  88.  
  89. void InsertL(zivotinje el, elem p, list* L){
  90. if(p==NULL)
  91. return;
  92. else{
  93. elem novi = new lis;
  94. novi->value = el;
  95. novi->Next = p->Next;
  96. p->Next = novi;
  97. }
  98. }
  99.  
  100.  
  101.  
  102. void DeleteL(elem p, list* L){
  103. elem toDelete = p->Next;
  104. if(toDelete){
  105. p->Next = toDelete->Next;
  106. delete toDelete;
  107. }
  108. }
  109.  
  110. zivotinje RetrieveL(elem p, list* L){
  111. return p->Next->value;
  112. }

Report this snippet  

You need to login to post a comment.