Beispiel #1
0
MySetResult mySetRemove(MySet set, MySetElement element){
	if (set==NULL || element == NULL){
		return MY_SET_NULL_ARGUMENT;
	}
	if (!mySetIsIn(set, element)){
		return MY_SET_ITEM_DOES_NOT_EXIST;
	}
	MySetElement elementFound = mySetExtract(set, element);
	set->freeElement(elementFound);
	return MY_SET_SUCCESS;
}
Beispiel #2
0
void mySetDestroy(MySet set) {
	if(set == NULL) {
		return;
	}

	while (set->head != NULL) {
		MySetNode current = set->head;
		set->head = set->head->next;
		set->freeElement(current->element);
		free(current);
	}
	free(set);
}