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; }
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); }