Posted By

anabel_lee on 11/12/12


Tagged

Liste zivotinje


Versions (?)

pokazivac_lista


 / Published in: C++
 

zaglavlje-pokazivaci

  1. // IMPLEMENTACIJA LISTE POMOCU POKAZIVACA //
  2.  
  3. #include <cstring>
  4.  
  5. struct zivotinje {
  6. int sifra, d,m,g;
  7. char vrsta[20], naziv[40];
  8. float cijena;
  9. };
  10.  
  11.  
  12. struct LIST {
  13. zivotinje zi;
  14. LIST *sljedeci;
  15. };
  16.  
  17. typedef LIST *element;
  18.  
  19.  
  20. element ENDL(LIST* L) {
  21. LIST *tekuci = L;
  22. while (tekuci->sljedeci)
  23. tekuci = tekuci->sljedeci;
  24. return tekuci;
  25. };
  26.  
  27. element FIRSTL (LIST *L) {
  28. if (L->sljedeci)
  29. return L;
  30. else
  31. return ENDL(L);
  32. };
  33.  
  34. element NEXTL (element position, LIST *L) {
  35. if (position->sljedeci)
  36. return position->sljedeci;
  37. else
  38. return ENDL(L);
  39. };
  40.  
  41. element PREVIOUSL (element position, LIST *L){
  42. if (position == L)
  43. return 0;
  44. LIST *tekuci = L;
  45. while (tekuci->sljedeci) {
  46. if (tekuci->sljedeci == position)
  47. return tekuci;
  48. tekuci = tekuci->sljedeci;
  49. }
  50. };
  51.  
  52. element LOCATEL (zivotinje z, LIST *L) {
  53. LIST *tekuci = L;
  54. while (tekuci) {
  55. if (tekuci->sljedeci && tekuci->sljedeci->zi.naziv == z.naziv)
  56. return tekuci;
  57. tekuci = tekuci->sljedeci;
  58. }
  59. return ENDL(L);
  60. };
  61.  
  62. element INSERTL (zivotinje z, element position, LIST *L) {
  63. if (position) {
  64. LIST *novi = new LIST;
  65. novi->zi.sifra = z.sifra;
  66. novi->zi.d = z.d;
  67. novi->zi.m = z.m;
  68. novi->zi.cijena = z.cijena;
  69. novi->zi.g = z.g;
  70.  
  71. strcpy (novi->zi.vrsta, z.vrsta);
  72. strcpy (novi->zi.naziv, z.naziv);
  73. if (position->sljedeci)
  74. novi->sljedeci = position->sljedeci;
  75. else novi->sljedeci = NULL;
  76. position->sljedeci = novi;
  77. }
  78. else
  79. return 0;
  80. };
  81.  
  82. element DELETEL (element position, LIST *L) {
  83. if (position && position->sljedeci) {
  84. LIST *pom = position->sljedeci;
  85. position->sljedeci = position->sljedeci->sljedeci;
  86. delete pom;
  87. }
  88. else
  89. return 0;
  90. };
  91.  
  92. zivotinje RETRIEVEL (element position, LIST *L) {
  93. zivotinje zi;
  94. if (position && position->sljedeci) {
  95. zi.sifra = position->sljedeci->zi.sifra;
  96. zi.cijena = position->sljedeci->zi.cijena;
  97. zi.d = position->sljedeci->zi.d;
  98. zi.m = position->sljedeci->zi.m;
  99. zi.g = position->sljedeci->zi.g;
  100.  
  101. strcpy (zi.vrsta, position->sljedeci->zi.vrsta);
  102. strcpy (zi.naziv, position->sljedeci->zi.naziv);
  103.  
  104. return zi;
  105. }
  106. };
  107.  
  108. void DELETEALLL (LIST *L) {
  109. LIST *prvi = L->sljedeci, *tekuci;
  110. while (prvi) {
  111. tekuci = prvi;
  112. prvi = prvi->sljedeci;
  113. delete tekuci;
  114. }
  115. };
  116.  
  117. LIST* INITL (LIST *L) {
  118. L = new LIST;
  119. L->sljedeci = NULL;
  120. return L;
  121. };

Report this snippet  

You need to login to post a comment.