我正在处理一个双链表,它将读取文件的输入(in.txt),将信息存储在双链表中,使用插入排序对链表中的所有节点进行排序,然后打印出来已排序的列表将创建一个名为out.txt的文件
输入文件的格式为:
StudentID名字姓氏部门GPA (任意数量的空白)
输出文件的格式为:
StudentID,名字,姓氏,部门,GPA (只用逗号分隔元素)
StudentID是一个7位整数,GPA是0到4之间的浮点数,其余是字符串。排序仅在StudentID号码上完成,并且没有两个StudentID号码相同。
我几乎使用this代码:
问题是输出文件什么都没显示。我相信问题出在我的remove_node函数中,但我不确定。任何帮助将不胜感激。
答案 0 :(得分:1)
您的插入排序有一个" remove_node"在里面。排序不应删除任何节点。
答案 1 :(得分:1)
void DLList_free(List * list){
Node * node;
Node * holder;
/* see the for loop statement */
for(node = list->first; node != NULL;)
{
holder = node->next;
free(node->Dept);
free(node->Lname);
free(node->Fname);
free(node);
node = holder;
}
}