コード例 #1
0
ファイル: list.c プロジェクト: bcrafton/Data-Structures
LIST_TYPE list_remove(int index, List *list){
	if(index >= list->size || index < 0){
		printf("index is out of bounds.\n");
		assert(0);
		return NULL;
	}
	if(list->size == 1){
		list->head == NULL;
		list->tail == NULL;
		list->size--;
		return NULL;
	}
	if(index == 0){
		return list_removeFirst(list);
	}
	else if(index == list->size-1){
		return list_removeLast(list);
	}
	else{
		int counter = 0;
		Node* ptr;
		for(ptr = list->head; ptr != NULL; ptr = ptr->next){
			if(counter == index){
				Node* left = ptr->prev;
				Node* right = ptr->next;
				left->next = right;
				right->prev = left;
				list->size--;
				return ptr;
			}
			counter++;
		}
        return NULL;
	}
}
コード例 #2
0
ファイル: test_LinkedList.c プロジェクト: AnosLim/LinkedList
void test_list_removeLast_should_remove_last_element_testing_with_no_element(){
	LinkedList *list;
	list = createLinkedList();

	Element arrayElem[] = {};
	list->length = 0;
	list->head = NULL;
	list->tail = NULL;
	
	TEST_ASSERT_NULL(list_removeLast(list));//Test for returned address
	TEST_ASSERT_NULL(list->head);
	TEST_ASSERT_NULL(list->tail);
	TEST_ASSERT_EQUAL(0, list->length);
	
}
コード例 #3
0
ファイル: test_LinkedList.c プロジェクト: AnosLim/LinkedList
	TEST_ASSERT_EQUAL(0, list->length);
	
}

void test_list_removeLast_should_remove_last_element_testing_with_1_element(){
	LinkedList *list;
	list = createLinkedList();
	
	Element arrayElem[] = {{.next = NULL, .data = 1}};
	list->length = 1;
	list->head = &arrayElem[0];
	list->tail = &arrayElem[0];
	
	//printf("Addr of arrayElem[0]: %p\n", &arrayElem[0]); //Address of returned element
	
	TEST_ASSERT_EQUAL_PTR(&arrayElem[0], list_removeLast(list));//Test for returned address
	TEST_ASSERT_NULL(list->head);
	TEST_ASSERT_NULL(list->tail);
	TEST_ASSERT_EQUAL(0, list->length);
	
}

void test_list_removeLast_should_remove_last_element_testing_with_2_elements(){
	LinkedList *list;
	list = createLinkedList();
	
	Element arrayElem[] = {{.next = &arrayElem[1], .data = 1}, 
							{.next = NULL, .data = 2}};
	list->length = 2;
	list->head = &arrayElem[0];
	list->tail = &arrayElem[1];