lista_pokazivac.h


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

datoteka zaglavlja u kojoj se nalazi implementacija liste pomoću pokazivača


Copy this code and paste it in your HTML
  1. struct tdate {
  2. int dan,godina,mjesec;
  3. };
  4.  
  5. struct elem {
  6. int sifra;
  7. char vrsta[20],naziv[20];
  8. float cijena;
  9. tdate date;
  10. };
  11.  
  12. struct list {
  13. elem anim;
  14. list *sljedeci;
  15. };
  16.  
  17. list *lista=new list;
  18.  
  19. int sifra=1,br_el=0,v=0,n=0;
  20. int EndL(list *lista) {
  21. list* tekuci=lista;
  22. int y=0;
  23. while(tekuci->sljedeci) {
  24. tekuci=tekuci->sljedeci;
  25. y++;
  26. }
  27. return y;
  28. }
  29. int FirstL(list* lista) {
  30. if(lista->sljedeci==NULL) return EndL(lista);
  31. return 0;
  32. }
  33.  
  34. int PreviousL(int y,list* lista) {
  35. if(y==FirstL(lista)) return -1;
  36. return y-1;
  37. }
  38.  
  39. int NextL(int y,list* lista) {
  40. if(y==EndL(lista)) return -1;
  41. if(y==PreviousL(EndL(lista),lista)) return EndL(lista);
  42. return y+1;
  43. }
  44.  
  45.  
  46. int LocateL(char x[],list* lista) {
  47. list *tekuci=lista;
  48. int y=0;
  49. while(tekuci) {
  50. if(tekuci->sljedeci==NULL) return EndL(lista);
  51. if(n==1&&!strcmp((tekuci->sljedeci)->anim.naziv,x)||v==1&&!strcmp((tekuci->sljedeci)->anim.vrsta,x)) return y;
  52. tekuci=tekuci->sljedeci;
  53. y++;
  54. }
  55. return EndL(lista);
  56. }
  57.  
  58. void InsertL(elem x,int y,list *lista) {
  59. list *zadnji=lista;
  60. for(int i=0;i<y;i++) zadnji=zadnji->sljedeci;
  61.  
  62. list *novi = new list;
  63. zadnji->sljedeci=novi;
  64. novi->anim=x;
  65. novi->sljedeci=NULL;
  66. }
  67.  
  68. void DeleteL(int y, list* lista) {
  69. list *brisi = lista->sljedeci,*prethodni=lista;
  70. for(int i=0;i<y;i++) {
  71. prethodni=brisi;
  72. brisi=brisi->sljedeci;
  73. }
  74. prethodni->sljedeci=brisi->sljedeci;
  75. delete brisi;
  76. }
  77.  
  78. elem RetrieveL(int y,list* lista) {
  79. list *tekuci = lista->sljedeci;
  80. for(int i=0;i<y;i++) tekuci=tekuci->sljedeci;
  81. return tekuci->anim;
  82. }
  83.  
  84. void DeleteAll(list* lista) {
  85. list* prethodni=lista,*tekuci=lista->sljedeci;
  86. while(tekuci) {
  87. delete prethodni;
  88. prethodni=tekuci;
  89. tekuci=tekuci->sljedeci;
  90. }
  91.  
  92. delete prethodni;
  93. lista=NULL;
  94. }
  95.  
  96. void InitL(list* lista) {
  97. lista->sljedeci=NULL;
  98. }
  99.  
  100. void Vrati(elem x,int y, list* lista) {
  101. list* tekuci=lista->sljedeci;
  102. for(int i=0;i<y;i++) tekuci=tekuci->sljedeci;
  103. tekuci->anim=x;
  104. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.