struct igra{
	int sifra, PEGI;
	string naziv, proizvodac, zanr, podzanr;
};

struct list {
	igra vrijednost;
	list *sljedeci;
};

typedef list* element;
typedef list lista;

element FirstL(lista *L){
	return L;
}

element EndL(lista *L){
	while(L->sljedeci)
		L = L->sljedeci;
	return L;
}

element NextL(element p, lista *L){
	return p->sljedeci;
}

element PreviousL(element p, lista *L){
	while(L->sljedeci != p)
		L = L->sljedeci;
	return L;
}

element LocateL(igra x, lista *L){
	while(L->sljedeci->vrijednost.sifra != x.sifra)
		L = L->sljedeci;
	return L;
}

bool InsertL(igra x, element p, lista *L){
	element novi = new list;
	novi->vrijednost = x;
	novi->sljedeci = p->sljedeci;
	p->sljedeci = novi;
	return true;
}

void DeleteL(element p, lista *L){
	element brisi = p->sljedeci;
	p->sljedeci = brisi->sljedeci;
	delete brisi;
}

igra RetreiveL(element p, lista *L){
	return p->sljedeci->vrijednost;
}

void DeleteAllL(lista *L){
	element brisi = L->sljedeci;
	while(brisi != NULL){
		L->sljedeci = brisi->sljedeci;
		delete brisi;
		brisi = L->sljedeci;
	}
}

void InitL(lista *L){
	L->sljedeci = NULL;
}