在双重链接列表上使用插入排序并写入文件

时间:2015-01-29 04:10:00

标签: c doubly-linked-list insertion-sort

我正在处理一个双链表,它将读取文件的输入(in.txt),将信息存储在双链表中,使用插入排序对链表中的所有节点进行排序,然后打印出来已排序的列表将创建一个名为out.txt的文件

输入文件的格式为:

StudentID名字姓氏部门GPA (任意数量的空白)

输出文件的格式为:

StudentID,名字,姓氏,部门,GPA (只用逗号分隔元素)

StudentID是一个7位整数,GPA是0到4之间的浮点数,其余是字符串。排序仅在StudentID号码上完成,并且没有两个StudentID号码相同。

我几乎使用this代码:

问题是输出文件什么都没显示。我相信问题出在我的remove_node函数中,但我不确定。任何帮助将不胜感激。

2 个答案:

答案 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;
}

}