Я пытаюсь переупорядочить свою DLL по значению int в структуре узла (возраст). Это работает, когда я обращаюсь к int напрямую, но я пытаюсь поменять местами целые узлы, чтобы мне не приходилось менять местами каждую переменную в структуре при переупорядочении списка.
void DLL::ReOrg(node* head, int DLL_Size)
{
node* temp = head;
int holder;
for(int j = 0; j < DLL_Size; j++)
{
while(temp != NULL)
{
if (temp->next != NULL && (temp->age < temp->next->age) )
{
holder = temp->age;
temp->age = temp->next->age;
temp->next->age = holder;
}
else
temp = temp->next;//increment node
}
temp = head;
}
}
Это работает, но когда я пытаюсь сделать что-то вроде:
node* holder;
...
holder = temp;
temp = temp->next;
temp->next = holder;
Моя программа скомпилируется и запустит пустой экран. Любое руководство будет оценено. Я предполагаю, что было бы проще просто поменять местами все мои переменные (их не так много), но я хотел сделать свой код чище. благодаря.