Return to Snippet

Revision: 60767
at November 12, 2012 08:57 by daja2


Initial Code
//IMPLEMENTACIJA LISTE POMOCU POKAZIVACA
struct podaci{
	int sifra;
	char naziv[30];
	char vrsta[30];
	float cijena;
	struct{
		int dan, mj, god;
	}dat;
};
 
struct lis {
	podaci value;
	lis *next;
};
 
typedef lis *element;
typedef lis list;
 
void DeleteAllL(list* L){
	while(L->next){
		element toDelete = L->next;
		if(L->next){
			L->next = toDelete->next;
			delete toDelete;
		}
	}
	delete L;
	L = NULL;
}
 
 
list* InitL(list* L){
	if(L!=NULL)
		DeleteAllL(L);
	else{
		list *newList = new list;
		newList->next = NULL;
		return newList;
	}
	return NULL;
}
 
element FirstL(list* L){
	return L;
}
 
element EndL(list* L){
	element tren = L;
	while(tren->next){
		tren = tren->next;
	}
	return tren;
}
 
element NextL(element p, list *L){
	if(p!=NULL){
		if(p==EndL(L)){
			return NULL;
		}
		return p->next;
	}
	return EndL(L);
}
 
element PreviousL(element p, list *L){
		element tren = L;
		while(tren){
			if(tren->next == p )
				return tren;
			tren = tren->next;
		}
		return NULL;
}
 
element LocateL(podaci el, list* L){
	element tren = L;
	while(tren->next){
		if(tren->next->value.sifra == el.sifra)
			return tren;
		tren = tren->next;
	}
	return NULL;
}
 
void InsertL(podaci el, element p, list* L){
	if(p==NULL)
		return;
	else{
		element novi = new lis;
		novi->value = el;
		novi->next = p->next;
		p->next = novi;
	}
}
 
void DeleteL(element p, list* L){
	element toDelete = p->next;
	if(toDelete){
		p->next = toDelete->next;
		delete toDelete;
	}
}
 
podaci RetrieveL(element p, list* L){
			return p->next->value;
}

Initial URL


Initial Description
opis je implementacija liste pomocu pokazivaca

Initial Title
lista_pkazivac.h

Initial Tags


Initial Language
C++