我被要求在C中按字母顺序插入到链表中,问题是我似乎无法真正按字母顺序获得该列表。我认为链接列表代码可能存在一些问题。我已经为此工作了好几天,但似乎还是无法解决。任何帮助表示赞赏:)
ps位于前面只是一个函数,它告诉您当前的学生姓名是否应该在所讨论的其他姓名之前。它用作布尔值,但不是1和0,而是true和false。
Student* insert(Student* student, Student* list)
{
Student* current;
if (list == NULL || (precedes(student->name, list->name) > 0)) {
student->next = list;
list = student;
} else {
current = list;
while(current->next != NULL && (precedes(current->name, student->name) > 0)) {
current= current->next;
}
student->next = current->next;
current->next = student;
}
return list;
}
答案 0 :(得分:0)
好,所以我借助NominalAnimal对其进行了修复。
发生了什么事
while(current->next != NULL && (precedes(current->name, student->name) > 0)) {
我应该一直将该学生的名字与列表中的下一个学生进行比较,而不是当前的名字。
欢呼