Posted By

kronostb on 11/13/12


Tagged


Versions (?)

Pokazivaci


 / Published in: C++
 

pokazivaci.h header za main

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. bool PV=true;
  5.  
  6. struct tdatum {
  7. int dan,mjesec,godina;
  8. };
  9. struct telement {
  10. int sifra;
  11. float cijena;
  12. char vrsta[100], naziv[100];
  13. tdatum datum;
  14. };
  15. struct lis{
  16. telement element;
  17. lis *next;
  18. };
  19. typedef lis *el;
  20. typedef lis lista;
  21.  
  22. el FirstL (lista *glava){
  23. return glava->next;
  24. }
  25.  
  26. el EndL (lista *glava){
  27. el zadnji=glava->next;
  28. while (zadnji->next) zadnji=zadnji->next;
  29. return zadnji;
  30. }
  31.  
  32. el NextL (el pozicija, lista *glava){
  33. if (pozicija->next!=NULL)
  34. return pozicija->next;
  35. cout<<"Error!\n";
  36. }
  37.  
  38. el PreviousL (el pozicija, lista *glava){
  39. el tekuci=glava;
  40. if (pozicija!=glava){
  41. while (tekuci->next!=pozicija)
  42. tekuci=tekuci->next;
  43. return tekuci;}
  44. cout<<"Error!\n";
  45. }
  46.  
  47. el LocateL (telement trazeni, lista *glava){
  48. el tekuci=glava;
  49. if (PV){
  50. while (tekuci){
  51. if (!(strcmp(tekuci->element.naziv,trazeni.naziv))) return tekuci;
  52. tekuci=tekuci->next;}}
  53. else{
  54. while (tekuci){
  55. if (!(strcmp(tekuci->element.vrsta,trazeni.vrsta))) return tekuci;
  56. tekuci=tekuci->next;}}
  57. return EndL(glava);
  58. }
  59.  
  60. int InsertL (telement novi, el pozicija, lista *glava){
  61. el tekuci=new lista;
  62. el prethodni;
  63. tekuci->element=novi;
  64. tekuci->next=pozicija;
  65. prethodni=PreviousL(pozicija, glava);
  66. prethodni->next=tekuci;
  67. if(tekuci->element.sifra==novi.sifra)
  68. return 1;
  69. return 0;
  70. }
  71.  
  72. int DeleteL (el pozicija, lista *glava){
  73. el prethodni;
  74. if (pozicija==EndL(glava)) return 0;
  75. prethodni=PreviousL(pozicija,glava);
  76. prethodni->next=pozicija->next;
  77. delete pozicija;
  78. return 1;
  79. }
  80.  
  81. telement RetreiveL (el pozicija, lista *glava){
  82. return pozicija->element;
  83. }
  84.  
  85. void DeleteAllL (lista *glava){
  86. el tekuci=glava->next, sljedeci;
  87. while (tekuci){
  88. sljedeci=tekuci->next;
  89. delete tekuci;
  90. tekuci=sljedeci;}
  91. }
  92.  
  93. lista *InitL (lista *glava){
  94. el zadnji;
  95. glava=new lista;
  96. zadnji=new lista;
  97. glava->next=zadnji;
  98. zadnji->next=NULL;
  99. return glava;
  100. }

Report this snippet  

You need to login to post a comment.