Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int remove(List* list, int index)
- {
- Node* temp = (Node*)malloc(sizeof(Node));
- Node* nodeToRemove = (Node*)malloc(sizeof(Node));
- if (isListEmpty(list))
- return -1;
- if (index == 0)
- {
- nodeToRemove = list->head;
- list->head = list->head->next;
- list->head->previous = NULL;
- nodeToRemove->next = NULL;
- nodeToRemove->value = NULL;
- free(nodeToRemove);
- list->size--;
- return 0; }
- else
- {
- {
- if (index != list->size - 1)
- if (index < list->size / 2)
- {
- }
- else
- {
- }
- list->size--;
- return 0;
- temp = list->head;
- for (int i = 1; i < index - 1; i++)
- {
- temp = temp->next;
- }
- nodeToRemove = temp->next;
- temp->next = nodeToRemove->next;
- nodeToRemove->next->previous = temp;
- nodeToRemove->previous = NULL;
- nodeToRemove->next = NULL;
- nodeToRemove->value = NULL;
- free(nodeToRemove);
- temp = list->tail;
- for (int i = list->size; i > index + 1; i--)
- {
- temp = temp->previous;
- }
- nodeToRemove = temp->previous;
- temp->previous = nodeToRemove->previous;
- nodeToRemove->previous->next = temp;
- nodeToRemove->previous = NULL;
- nodeToRemove->next = NULL;
- nodeToRemove->value = NULL;
- free(nodeToRemove);
- nodeToRemove = list->tail;
- list->tail = nodeToRemove->previous;
- list->tail->next = NULL;
- nodeToRemove->previous = NULL;
- nodeToRemove->next = NULL;
- nodeToRemove->value = NULL;
- free(nodeToRemove);
- list->size--;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment