AlukardBF

Untitled

May 28th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. void sort(Client *head, int sortType)
  2. {
  3.     Client *current, *minim, *newhead = NULL, *newcur, *tmp;
  4.     while (head)
  5.     {
  6.         current = head;
  7.         minim = head;
  8.         tmp = head;
  9.         //Поиск минимального
  10.         while (current->next)
  11.         {
  12.             switch (sortType)
  13.             {
  14.             case 0: { //Сортируем по номеру счета
  15.                 if (stoi(current->next->account) < stoi(minim->account)) {
  16.                     minim = current->next;
  17.                     tmp = current;
  18.                 }
  19.                 break;
  20.             }
  21.             case 1: { //Сортируем по имени
  22.                 if (current->next->full_name < minim->full_name) {
  23.                     minim = current->next;
  24.                     tmp = current;
  25.                 }
  26.                 break;
  27.             }
  28.             case 2: { //Сортируем по балансу
  29.                 if (balance(current->next, year) >= balance(minim, year)) {
  30.                     minim = current->next;
  31.                     tmp = current;
  32.                 }
  33.                 break;
  34.             }
  35.             default:
  36.                 break;
  37.             }
  38.             current = current->next;
  39.         }
  40.         //Удаление из 1-ого списка
  41.         if (minim == head) {
  42.             if (head->next)
  43.                 head = head->next;
  44.             else
  45.                 head = NULL;
  46.         }
  47.         else if (minim->next)
  48.             tmp->next = minim->next;
  49.         else
  50.             tmp->next = NULL;
  51.         //Добавление во 2-ой список
  52.         if (!newhead)
  53.         {
  54.             newhead = minim;
  55.             newhead->next = NULL;
  56.             newcur = newhead;
  57.         }
  58.         else
  59.         {
  60.             newcur->next = minim;
  61.             newcur = newcur->next;
  62.             newcur->next = NULL;
  63.         }
  64.     }
  65.     head = newhead;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment