void spListDestroy(SPList list) { if (list == NULL) { return; } spListClear(list); destroyNode(list->head); destroyNode(list->tail); free(list); }
void spBPQueueClear(SPBPQueue source) { if (source != NULL && source->queue != NULL) { spListClear(source->queue); if (source->maxElement) { spListElementDestroy(source->maxElement); source->maxElement = NULL; } } }
static bool testListClear() { SPListElement e1 = spListElementCreate(1, 1.0); SPListElement e2 = spListElementCreate(2, 2.0); SPListElement e3 = spListElementCreate(3, 3.0); SPListElement e4 = spListElementCreate(4, 4.0); SPList list2 = quickList(4, e1, e2, e3, e4); ASSERT_TRUE(spListClear(list2) == SP_LIST_SUCCESS); ASSERT_TRUE(0 == spListGetSize(list2)); SPList list = spListCreate(); spListClear(list); ASSERT_TRUE(0 == spListGetSize(list)); spListDestroy(list); spListDestroy(list2); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); return true; }
} ASSERT_TRUE(spListInsertFirst(list,e1) == SP_LIST_SUCCESS); i=0; SP_LIST_FOREACH(SPListElement,e,list){ ASSERT_TRUE(spListElementCompare(e,arr[i]) == 0); i++; } ASSERT_TRUE(i==4);//number of elements = 4 ASSERT_TRUE(spListInsertLast(list,e5) == SP_LIST_SUCCESS); i=0; SP_LIST_FOREACH(SPListElement,e,list){ ASSERT_TRUE(spListElementCompare(e,arr[i]) == 0); i++; } ASSERT_TRUE(i==5);//number of elements should be 5 ASSERT_TRUE(spListClear(list) == SP_LIST_SUCCESS); SP_LIST_FOREACH(SPListElement,e,list){ ASSERT_TRUE(false);//Should not enter this loop because list is empty } spListDestroy(list); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); spListElementDestroy(e5); return true; } int main() { RUN_TEST(testElementCreate); RUN_TEST(testElementCopy); RUN_TEST(testElementCompare);
void spBPQueueClear(SPBPQueue source) { if (source == NULL) { return; } spListClear(source->innerList); }
void spBPQueueClear(SPBPQueue source){ assert(source); spListClear(source->list); }