Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void insertion_sort(LinkedList *list, int (*compare)(void *, void *))
- {
- LinkedList *sortedList = initialise_linked_list();
- int compareVal;
- if(!list){
- return;
- }
- if(list->head == NULL){
- return;
- }
- append_linked_list(sortedList, list->head->data);
- remove_tail_linked_list(list);
- while(list->head){
- Node *removedHead = sortedList->head;
- while(removedHead){
- compareVal = (*compare)(list->head->data, removedHead->data);
- if(compareVal<0){
- prepend_linked_list(sortedList, list->head->data);
- remove_head_linked_list(list);
- }
- removedHead = removedHead->next;
- }
- if(!removedHead){
- append_linked_list(sortedList, list->head->data);
- remove_head_linked_list(list);
- }
- }
- list->head = sortedList->head;
- list->tail = sortedList->tail;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement