У вас есть много плохих методов кодирования, таких как using namespace std;
, плохой стиль именования и использование Null
вместо nullptr
.
Однако ошибка была в фрагменте сортировки. Вы пытаетесь поменять местами узлы, но вы не можете сделать это без использования узла, предшествующего текущему узлу, или использования двусвязного списка. Итак, в следующем коде я поменял числа, а не узлы.
void bubblesort(int size) {
int i, j, swapped = 1;
for (i = 0; swapped && i < size; i++){
swapped = 0;
Node* temp = head;
for (j = 0; j < size - i - 1; j++){
if (temp->number > temp -> next ->number){
int tempNumber = temp -> number;
temp -> number = temp -> next -> number;
temp -> next -> number = tempNumber;
swapped = 1;
}
temp = temp->next;
}
}
}