Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. void swap(Node* node1, Node* node2, List* l)
  2. {
  3.          Node* temp_node1;
  4.          Node* temp_node2;
  5.          Node* temp;
  6.  
  7.          temp_node1 = node1;
  8.          temp_node2 = node2;
  9.          if ( temp_node1 == l->first){l->first = temp_node2;}
  10.          else if ( temp_node2 == l->first){l->first = temp_node1;}
  11.          if ( temp_node1 == l->last){l->last = temp_node2;}
  12.          else if ( temp_node2 == l->last){l->last = temp_node1;}
  13.  
  14.          if (temp_node1->next!=NULL) { temp_node1->next->previous = temp_node2; }
  15.          if (temp_node2->next!=NULL) { temp_node2->next->previous = temp_node1; }
  16.          temp = temp_node1->next;
  17.          temp_node1->next = temp_node2->next;
  18.          temp_node2->next = temp;
  19.  
  20.          if (temp_node1->previous!=NULL) { temp_node1->previous->next = temp_node2;  }
  21.          if (temp_node2->previous!=NULL) { temp_node2->previous->next = temp_node1;  }
  22.          temp = temp_node1->previous;
  23.          temp_node1->previous = temp_node2->previous;
  24.          temp_node2->previous = temp;
  25.  
  26.          node1 = temp_node2;
  27.          node2 = temp_node1;
  28. }
  29.  
  30.  
  31. //------------------------------------------------------------------------------
  32.  
  33. void sort(List* l)
  34. {
  35.     Node* current;
  36.     Node* item;
  37.     Node* min;
  38.     if ( l->first != NULL)
  39.     {
  40.         for(item = l->first; item != NULL; item = item->next)
  41.         {
  42.             min = item;
  43.             for(current = item->next; current != NULL; current = current->next)
  44.             {
  45.                 if (current->element < min->element)
  46.                 {
  47.                     min = current;
  48.                 }
  49.  
  50.             }
  51.             if ( min != item)
  52.             {
  53.                 swap(item, min, l);
  54.                 item = l->first;
  55.             }
  56.         }
  57.     }
  58.     else
  59.     {
  60.         cout<<"Een lege lijst kan niet gesorteerd worden"<<endl;
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement