Posted By

boraxx on 11/12/12


Tagged

lista polje iplementacija


Versions (?)

lista_poljee.h


 / Published in: C++
 

Implementacija liste pomoću polja

  1. #include <cstring>
  2.  
  3. struct ZIV {
  4. int sif, cij, dan, mjesec, god;
  5. char naziv [20], vrsta [30];
  6. };
  7.  
  8. ZIV zivotinj;
  9.  
  10. struct list {
  11. int sif[1000], cij[1000], dan[1000], mjesec[1000], god[1000];
  12. char naziv [20][1000], vrsta [30][1000];
  13. int pointer;
  14. };
  15.  
  16. typedef int el;
  17.  
  18. el ENDL (list *L) {
  19. return L->pointer;
  20. }
  21.  
  22. el FIRSTL (list *L) {
  23. if (L->pointer == 0) ENDL(L);
  24. return 0;
  25. }
  26.  
  27. el NEXTL (el position, list *L) {
  28. if ((position >= L->pointer) || (position < 0))
  29. return 0;
  30. return(position + 1);
  31. }
  32.  
  33. el PREVIOUSL (el position, list *L) {
  34. if ((position > L->pointer) || (position <= 0))
  35. return (position - 1);
  36. }
  37.  
  38.  
  39. el INSERTL (ZIV z, el position, list *L) {
  40. int br;
  41. if ((position <= L->pointer) && (position >= 0)) {
  42. for (br=L->pointer; br >= position; br --) {
  43. L->sif[br] = L->sif[br-1];
  44. L->cij[br] = L->cij[br-1];
  45. L->dan[br] = L->dan[br-1];
  46. L->mjesec[br] = L->mjesec[br-1];
  47. L->god[br] = L->god[br-1];
  48. strcpy (L->naziv[br],L->naziv[br-1]);
  49. strcpy (L->vrsta[br],L->vrsta[br-1]);
  50. }
  51. L->pointer ++;
  52. L->sif[position] = z.sif;
  53. L->cij[position] = z.cij;
  54. L->dan[position] = z.dan;
  55. L->mjesec[position] = z.mjesec;
  56. L->god[position] = z.god;
  57. strcpy (L->naziv[position],z.naziv);
  58. strcpy (L->vrsta[position],z.vrsta);
  59. return 1;
  60. }
  61. else
  62. return 0;
  63. }
  64.  
  65. el DELETEL (el position, list *L) {
  66. int br;
  67. if ((position < L->pointer) && (position >= 0)) {
  68. for (br = position; br < L->pointer; br ++){
  69. L->sif[br] = L->sif[br+1];
  70. L->cij[br] = L->cij[br+1];
  71. L->dan[br] = L->dan[br+1];
  72. L->mjesec[br] = L->mjesec[br+1];
  73. L->god[br] = L->god[br+1];
  74. strcpy(L->naziv[br],L->naziv[br+1]);
  75. strcpy(L->vrsta[br],L->vrsta[br+1]);
  76. }
  77. L->pointer --;
  78. return 1;
  79. }
  80. else
  81. return 0;
  82. }
  83.  
  84.  
  85. el DELETEALLL (list *L) {
  86. L->pointer = 0;
  87. return 0;
  88. }
  89.  
  90. list *INITL (list *L) {
  91. L = new list;
  92. L->pointer = 0;
  93. return L;
  94. }

Report this snippet  

You need to login to post a comment.