コード例 #1
0
ファイル: SPBPriorityQueue.c プロジェクト: orrbarkat/c
void spBPQueueDestroy(SPBPQueue source){
	if(source != NULL){
		spListDestroy(source->list);
		free(source);
	}
	return;
}
コード例 #2
0
ファイル: sp_list_unit_test.c プロジェクト: med3590/SPA3
static bool testListInsertAfterCurrent() {
	ASSERT_TRUE(SP_LIST_NULL_ARGUMENT == spListInsertAfterCurrent(NULL, NULL));

	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(3, e2, e3, e4);
	ASSERT_TRUE(SP_LIST_NULL_ARGUMENT == spListInsertAfterCurrent(list2,NULL));
	ASSERT_TRUE(SP_LIST_INVALID_CURRENT == spListInsertAfterCurrent(list2, e1));
	spListGetFirst(list2);
	spListGetNext(list2);
	ASSERT_TRUE(SP_LIST_SUCCESS == spListInsertAfterCurrent(list2, e1));
	ASSERT_TRUE(4 == spListGetSize(list2));
	ASSERT_TRUE(spListElementCompare(e2, spListGetFirst(list2))==0);
	ASSERT_TRUE(spListElementCompare(e3, spListGetNext(list2))==0);
	ASSERT_TRUE(spListElementCompare(e1, spListGetNext(list2))==0);
	ASSERT_TRUE(spListElementCompare(e4, spListGetNext(list2))==0);
	ASSERT_TRUE(spListGetNext(list2) == NULL);
	ASSERT_TRUE(spListGetNext(list2) == NULL);
	spListDestroy(list2);
	spListElementDestroy(e1);
	spListElementDestroy(e2);
	spListElementDestroy(e3);
	spListElementDestroy(e4);
	return true;
}
コード例 #3
0
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;
}
コード例 #4
0
void spBPQueueDestroy(SPBPQueue source) {
	if (source != NULL) {
		if (source->queue != NULL)
			spListDestroy(source->queue);
		spListElementDestroy(source->maxElement);
		source->maxElement = NULL;
		free(source);
		source = NULL;
	}
}
コード例 #5
0
ファイル: SPBPriorityQueue.c プロジェクト: orrbarkat/c
SPBPQueue spBPQueueCopy(SPBPQueue source){
	assert(source);
	SPBPQueue copy = spBPQueueCreate(source->bound);
	if (copy == NULL){
		return NULL;
	}
	spListDestroy(copy->list);
	copy->list = spListCopy(source->list);
	return copy;
}
コード例 #6
0
static bool testListGetLast() {
	SPList list = spListCreate();
	ASSERT_TRUE(spListGetLast(list) == NULL);
	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);
	SPListElement last = spListGetLast(list2);
	ASSERT_TRUE(spListElementCompare(e4, last) == 0);
	ASSERT_TRUE(
			spListElementCompare(last, spListGetLast(list2)) == 0
					&& spListGetLast(list2) == last);
	spListDestroy(list);
	spListDestroy(list2);
	spListElementDestroy(e1);
	spListElementDestroy(e2);
	spListElementDestroy(e3);
	spListElementDestroy(e4);
	return true;
}
コード例 #7
0
static bool testListGetPrevious() {
	ASSERT_TRUE(spListGetNext(NULL) == NULL);
	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(spListGetPrevious(list2) == NULL);
	spListDestroy(list2);
	spListElementDestroy(e1);
	spListElementDestroy(e2);
	spListElementDestroy(e3);
	spListElementDestroy(e4);
	return true;
}
コード例 #8
0
SPBPQueue spBPQueueCreate(int maxSize) {
	if (maxSize <= 0) {
		return NULL;
	}
	SPList newList = spListCreate();
	if (newList == NULL) {
		return NULL;
	}
	SPBPQueue createdQueue = spBPQueueInnerCreate(newList, maxSize);
	if (createdQueue == NULL) {
		spListDestroy(newList);
		return NULL;
	}
	return createdQueue;
}
コード例 #9
0
static bool testListGetSize() {
	SPList list = quickList(0);
	ASSERT_TRUE(0 == spListGetSize(list));
	SPListElement e1 = spListElementCreate(1, 1.0);
	spListInsertFirst(list, e1);
	ASSERT_TRUE(1 == spListGetSize(list));
	spListElementSetIndex(e1, 2);
	spListElementSetValue(e1, 2.0);
	spListInsertFirst(list, e1);
	ASSERT_TRUE(2 == spListGetSize(list));
	spListGetFirst(list);
	spListRemoveCurrent(list);
	ASSERT_TRUE(1 == spListGetSize(list));
	spListDestroy(list);
	spListElementDestroy(e1);
	return true;
}
コード例 #10
0
ファイル: SPList.c プロジェクト: xqgex/SoftwareProject3
SPList spListCopy(SPList list) {
	if (list == NULL) {
		return NULL;
	}
	SPList copyList = spListCreate();
	if (copyList == NULL) {
		return NULL;
	}
	SPListElement currentElement = spListGetFirst(list);
	while (currentElement) {
		if (spListInsertLast(copyList, currentElement) != SP_LIST_SUCCESS) {
			spListDestroy(copyList);
			list->current = NULL;
			return NULL;
		}
		currentElement = spListGetNext(list);
	}
	list->current = NULL;
	copyList->current = NULL;
	return copyList;
}
コード例 #11
0
static bool testListDestroy() {
	spListDestroy(NULL);
	return true;
}
コード例 #12
0
static bool testListCreate() {
	SPList list = spListCreate();
	ASSERT_TRUE(list != NULL);
	spListDestroy(list);
	return true;
}