void sort() { Kafedra * current = head; Kafedra* prev = 0; Kafedra* tempNode = 0; bool changeFlag = false; for (int i = 0; i < n; i++) { while (current->next != 0) { tempNode = current->next; if (current->count_of_students > tempNode->count_of_students) { changeFlag = true; current->next = tempNode->next; tempNode->next = current; if (prev != 0) prev->next = tempNode; prev = tempNode; if (head == current) head = tempNode; if (current->next == 0) tail = current; } else { prev = current; current = current->next; } } if (changeFlag == false) break; else { prev = 0; current = head; changeFlag = false; } } }