Posted By

mronki on 11/07/12


Tagged

header list pointer ATP


Versions (?)

pokazivaci.h


 / Published in: C++
 

header sa funkcijama za pokazivace

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

Report this snippet  

You need to login to post a comment.