Return to Snippet

Revision: 60788
at November 12, 2012 09:31 by dmikulin


Initial Code
typedef lis *elem;
typedef lis list;


struct zivotinje{
	int sifra;
	char naziv[30];
	char vrsta[30];
	float cijena;
	struct{
		int dan, mj, god;
	}datum;
};
 
struct lis {
	zivotinje value;
	lis *Next;
};
 

 
void DeleteAllL(list* L){
	while(L->Next){
		elem 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;
}
 
elem FirstL(list* L){
	return L;
}
 
elem EndL(list* L){
	elem trenutni = L;
	while(trenutni->Next){
		trenutni = trenutni->Next;
	}
	return trenutni;
}
 
elem NextL(elem p, list *L){
	if(p!=NULL){
		if(p==EndL(L)){
			return NULL;
		}
		return p->Next;
	}
	return EndL(L);
}
 
elem PreviousL(elem p, list *L){
		elem trenutni = L;
		while(trenutni){
			if(trenutni->Next == p )
				return trenutni;
			trenutni = trenutni->Next;
		}
		return NULL;
}
 
elem LocateL(zivotinje el, list* L){
	elem trenutni = L;
	while(trenutni->Next){
		if(trenutni->Next->value.sifra == el.sifra)
			return trenutni;
		trenutni = trenutni->Next;
	}
	return NULL;
}
 

void InsertL(zivotinje el, elem p, list* L){
	if(p==NULL)
		return;
	else{
		elem novi = new lis;
		novi->value = el;
		novi->Next = p->Next;
		p->Next = novi;
	}
}
 


void DeleteL(elem p, list* L){
	elem toDelete = p->Next;
	if(toDelete){
		p->Next = toDelete->Next;
		delete toDelete;
	}
}
 
zivotinje RetrieveL(elem p, list* L){
			return p->Next->value;
}

Initial URL


Initial Description
Zaglavlje pomoću pokazivača

Initial Title
lista_pokazivac.h

Initial Tags


Initial Language
C++