Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void sort(Client *head, int sortType)
- {
- Client *current, *minim, *newhead = NULL, *newcur, *tmp;
- while (head)
- {
- current = head;
- minim = head;
- tmp = head;
- //Поиск минимального
- while (current->next)
- {
- switch (sortType)
- {
- case 0: { //Сортируем по номеру счета
- if (stoi(current->next->account) < stoi(minim->account)) {
- minim = current->next;
- tmp = current;
- }
- break;
- }
- case 1: { //Сортируем по имени
- if (current->next->full_name < minim->full_name) {
- minim = current->next;
- tmp = current;
- }
- break;
- }
- case 2: { //Сортируем по балансу
- if (balance(current->next, year) >= balance(minim, year)) {
- minim = current->next;
- tmp = current;
- }
- break;
- }
- default:
- break;
- }
- current = current->next;
- }
- //Удаление из 1-ого списка
- if (minim == head) {
- if (head->next)
- head = head->next;
- else
- head = NULL;
- }
- else if (minim->next)
- tmp->next = minim->next;
- else
- tmp->next = NULL;
- //Добавление во 2-ой список
- if (!newhead)
- {
- newhead = minim;
- newhead->next = NULL;
- newcur = newhead;
- }
- else
- {
- newcur->next = minim;
- newcur = newcur->next;
- newcur->next = NULL;
- }
- }
- head = newhead;
- }
Advertisement
Add Comment
Please, Sign In to add comment