Использование сортировки вставками в двусвязных списках и запись в файл

Я работаю над двойным связанным списком, который будет считывать ввод из файла (in.txt), сохранять информацию в двойном связанном списке, использовать сортировку вставками для сортировки всех узлов в связанном списке, а затем распечатывать отсортированный список в файл, который будет создан с именем out.txt

Входной файл имеет следующий формат:

StudentID Имя Фамилия Средний балл факультета (с любым количеством пробелов)

И выходной файл должен быть отформатирован как:

StudentID,Firstname,Lastname,Department,GPA (элементы разделяются только запятыми)

StudentID — это 7-значное целое число, GPA — это число с плавающей запятой от 0 до 4, остальные — строки символов. Сортировка выполняется исключительно по номеру StudentID, и нет двух одинаковых номеров StudentID.

У меня все почти работает с этим кодом:

Проблема в том, что выходной файл ничего не показывает. Я считаю, что проблема в моей функции remove_node, но я не уверен. Любая помощь приветствуется.


person Not_NSA_I_Swear    schedule 29.01.2015    source источник
comment
Я проверил ваш код с двумя входами, как в вопросе, он работает нормально.   -  person Karthikeyan.R.S    schedule 29.01.2015
comment
У меня не получается почему-то. Я получаю пустой выходной файл. Кто-нибудь еще?   -  person Not_NSA_I_Swear    schedule 29.01.2015


Ответы (2)


В вашей сортировке вставки есть «remove_node». Сортировка не должна удалять какие-либо узлы.

person Marichyasana    schedule 29.01.2015
comment
Я лишь временно удаляю его, чтобы вернуть на место. Я пытаюсь сделать сортировку вставками. - person Not_NSA_I_Swear; 29.01.2015
comment
Но тогда у вас должен быть add_node, чтобы вернуть его, а у вас его нет. - person Marichyasana; 29.01.2015
comment
но я делаю, хотя. Я удаляю его из списка, но сохраняю ссылку на него как на узел. Затем я помещаю его рядом с тем местом, где указатель temp останавливается в цикле while. - person Not_NSA_I_Swear; 29.01.2015

person    schedule
comment
Казалось бы, это имеет смысл, поскольку я бы сделал то же самое с node=holder, а затем с node = node->next. Это была единственная проблема, которую вы видели? - person Not_NSA_I_Swear; 29.01.2015