Posted By

ikoren on 11/11/12


Tagged

lista pokazivac zaglavlja datoteka


Versions (?)

strukture podataka (Z1_datoteka zaglavlja- lista_pokazivac.h)


 / Published in: C++
 

Datoteka zaglavlja lista_pokazivac.h sadrzi implementacije liste pomocu pokazivaca.

  1. #include <string>
  2.  
  3. using namespace std;
  4.  
  5. struct kucni_ljubimci {
  6. int sifra;
  7. int cijena;
  8. string datum;
  9. string naziv;
  10. string vrsta;
  11. };
  12.  
  13. struct List {
  14. kucni_ljubimci podatak;
  15. List *sljedeci;
  16. };
  17.  
  18. typedef List Lista;
  19. typedef List* element;
  20.  
  21. element error = NULL;
  22.  
  23. void InitL(Lista *lista) {
  24. lista->sljedeci = NULL;
  25. }
  26.  
  27. element FirstL(Lista *lista) {
  28. return lista;
  29. }
  30.  
  31. element NextL(element e, Lista *lista) {
  32. return e->sljedeci;
  33. }
  34.  
  35. element PreviousL(element e, Lista *lista) {
  36. if (e == lista) {
  37. cout << "Glava liste nema prethodni element" << endl;
  38. return error;
  39. }
  40. element prethodni = lista;
  41. while (prethodni->sljedeci != e) {
  42. prethodni = prethodni->sljedeci;
  43. }
  44. return prethodni;
  45. }
  46.  
  47. element EndL(Lista *lista) {
  48. element zadnji = lista;
  49. while (zadnji->sljedeci != NULL) {
  50. zadnji = zadnji->sljedeci;
  51. }
  52. return zadnji;
  53. }
  54.  
  55.  
  56. void DeleteL(element e, Lista *lista) {
  57. element obrisi = e->sljedeci;
  58. e->sljedeci = obrisi->sljedeci;
  59. delete obrisi;
  60. }
  61.  
  62. void DeleteAll(Lista *lista) {
  63. element obrisi;
  64. element tekuci = lista->sljedeci;
  65. while (tekuci != NULL) {
  66. obrisi = tekuci;
  67. tekuci = tekuci->sljedeci;
  68. delete obrisi;
  69. }
  70.  
  71. lista->sljedeci = NULL;
  72. }
  73.  
  74. kucni_ljubimci RetrieveL(element e, Lista *list) {
  75. return e->sljedeci->podatak;
  76. }
  77.  
  78. element LocateL(kucni_ljubimci x, Lista *lista) {
  79. element tekuci = lista;
  80. kucni_ljubimci nadjena;
  81.  
  82. while (tekuci != EndL(lista)) {
  83. nadjena = tekuci->sljedeci->podatak;
  84. if (nadjena.sifra == x.sifra) {
  85. return tekuci;
  86. }
  87. tekuci = tekuci->sljedeci;
  88. }
  89.  
  90. return error;
  91. }
  92.  
  93. bool InsertL(kucni_ljubimci x, element e, Lista *lista) {
  94. element novi = new Lista;
  95. novi->podatak = x;
  96.  
  97. novi->sljedeci = e->sljedeci;
  98. e->sljedeci = novi;
  99. return true;
  100. }

Report this snippet  

You need to login to post a comment.