Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void swap(Node* node1, Node* node2, List* l)
- {
- Node* temp_node1;
- Node* temp_node2;
- Node* temp;
- temp_node1 = node1;
- temp_node2 = node2;
- if ( temp_node1 == l->first){l->first = temp_node2;}
- else if ( temp_node2 == l->first){l->first = temp_node1;}
- if ( temp_node1 == l->last){l->last = temp_node2;}
- else if ( temp_node2 == l->last){l->last = temp_node1;}
- if (temp_node1->next!=NULL) { temp_node1->next->previous = temp_node2; }
- if (temp_node2->next!=NULL) { temp_node2->next->previous = temp_node1; }
- temp = temp_node1->next;
- temp_node1->next = temp_node2->next;
- temp_node2->next = temp;
- if (temp_node1->previous!=NULL) { temp_node1->previous->next = temp_node2; }
- if (temp_node2->previous!=NULL) { temp_node2->previous->next = temp_node1; }
- temp = temp_node1->previous;
- temp_node1->previous = temp_node2->previous;
- temp_node2->previous = temp;
- node1 = temp_node2;
- node2 = temp_node1;
- }
- //------------------------------------------------------------------------------
- void sort(List* l)
- {
- Node* current;
- Node* item;
- Node* min;
- if ( l->first != NULL)
- {
- for(item = l->first; item != NULL; item = item->next)
- {
- min = item;
- for(current = item->next; current != NULL; current = current->next)
- {
- if (current->element < min->element)
- {
- min = current;
- }
- }
- if ( min != item)
- {
- swap(item, min, l);
- item = l->first;
- }
- }
- }
- else
- {
- cout<<"Een lege lijst kan niet gesorteerd worden"<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement