Posted By

Jurij on 11/12/12


Tagged

list lista adt ATP


Versions (?)

Evidencija Zivotinja Pokazivaci Zaglavlje


 / Published in: C++
 

Zaglavlje s implementacijom funkcija pomoću pokazivača

  1. struct dat {
  2. int d,m,g;
  3. };
  4.  
  5. struct zapis {
  6. int sifra;
  7. float cijena;
  8. char vrsta[20],naziv[20];
  9. dat datum;
  10. };
  11.  
  12. struct lista {
  13. zapis podaci;
  14. lista *nx;
  15. };
  16.  
  17. lista *L = new lista;
  18. int sifra=100,n=0;
  19.  
  20. void InitL(lista *L) {
  21. L->nx=NULL;
  22. }
  23.  
  24. int EndL(lista *L) {
  25. lista* temp=L;
  26. int p=0;
  27. while(temp->nx) {
  28. temp=temp->nx;
  29. p++;
  30. }
  31. return p;
  32. }
  33.  
  34. int FirstL(lista* L) {
  35. if(L->nx==NULL) return EndL(L);
  36. return 0;
  37. }
  38.  
  39. int PreviousL(int p,lista* L) {
  40. if(p==FirstL(L)) return -1;
  41. return p-1;
  42. }
  43.  
  44. int NextL(int p,lista* L) {
  45. if(p==EndL(L)) return -1;
  46. if(p==PreviousL(EndL(L),L)) return EndL(L);
  47. return p+1;
  48. }
  49.  
  50. void InsertL(zapis x,int p,lista *L) {
  51. lista *k=L;
  52. for(int i=0;i<p;i++)k=k->nx;
  53. lista *novi = new lista;
  54. novi->nx=(k->nx)->nx;
  55. k->nx=novi;
  56. novi->podaci=x;
  57. }
  58.  
  59. zapis RetrieveL(int p,lista* L) {
  60. lista *temp = L->nx;
  61. for(int i=0;i<p;i++)temp=temp->nx;
  62. return temp->podaci;
  63. }
  64.  
  65. int LocateL(char x[],lista* L) {
  66. lista *temp=L;
  67. int p=0;
  68. while(temp) {
  69. if(temp->next==NULL) return EndL(L);
  70. if(!strcmp((temp->nx)->podaci.naziv,x)||(!strcmp((temp->nx)->podaci.vrsta,x)))return p;
  71. temp=temp->nx;
  72. p++;
  73. }
  74. return EndL(L);
  75. }
  76.  
  77. void DeleteL(int p, lista *L) {
  78. lista *temp = L->nx,*prev=L;
  79. for(int i=0;i<p;i++) {
  80. prev=temp;
  81. temp=temp->nx;
  82. }
  83. prev->nx=temp->nx;
  84. delete temp;
  85. }
  86.  
  87. void DeleteAll(lista* L) {
  88. lista* prev=L,*temp=L->nx;
  89. while(temp) {
  90. delete prev;
  91. prev=temp;
  92. temp=temp->nx;
  93. }
  94. delete prev;
  95. L=NULL;
  96. }

Report this snippet  

You need to login to post a comment.