/ Published in: C++
Datoteka zaglavlja lista_pokazivac.h sadrzi implementacije liste pomocu pokazivaca.
Expand |
Embed | Plain Text
#include <string> using namespace std; struct kucni_ljubimci { int sifra; int cijena; string datum; string naziv; string vrsta; }; struct List { kucni_ljubimci podatak; List *sljedeci; }; typedef List Lista; typedef List* element; element error = NULL; void InitL(Lista *lista) { lista->sljedeci = NULL; } element FirstL(Lista *lista) { return lista; } element NextL(element e, Lista *lista) { return e->sljedeci; } element PreviousL(element e, Lista *lista) { if (e == lista) { cout << "Glava liste nema prethodni element" << endl; return error; } element prethodni = lista; while (prethodni->sljedeci != e) { prethodni = prethodni->sljedeci; } return prethodni; } element EndL(Lista *lista) { element zadnji = lista; while (zadnji->sljedeci != NULL) { zadnji = zadnji->sljedeci; } return zadnji; } void DeleteL(element e, Lista *lista) { element obrisi = e->sljedeci; e->sljedeci = obrisi->sljedeci; delete obrisi; } void DeleteAll(Lista *lista) { element obrisi; element tekuci = lista->sljedeci; while (tekuci != NULL) { obrisi = tekuci; tekuci = tekuci->sljedeci; delete obrisi; } lista->sljedeci = NULL; } kucni_ljubimci RetrieveL(element e, Lista *list) { return e->sljedeci->podatak; } element LocateL(kucni_ljubimci x, Lista *lista) { element tekuci = lista; kucni_ljubimci nadjena; while (tekuci != EndL(lista)) { nadjena = tekuci->sljedeci->podatak; if (nadjena.sifra == x.sifra) { return tekuci; } tekuci = tekuci->sljedeci; } return error; } bool InsertL(kucni_ljubimci x, element e, Lista *lista) { element novi = new Lista; novi->podatak = x; novi->sljedeci = e->sljedeci; e->sljedeci = novi; return true; }
You need to login to post a comment.
