gpt4 book ai didi

c - 添加到链接列表的末尾不起作用

转载 作者:行者123 更新时间:2023-11-30 16:24:58 26 4
gpt4 key购买 nike

当尝试将学生添加到我的列表末尾时,结果发现其字母顺序错误。我尝试更改函数的添加到结束部分,但似乎看不出出了什么问题。

这是我添加到末尾的方式

  Student *prvPtr= headStudentList;
for(Student *curPtr = headStudentList->next; curPtr != NULL; curPtr = curPtr->next)
{
if (curPtr->next==NULL){
curPtr->next= newPtr; //newPtr
return headStudentList;
}
if(strcmp(curPtr->lastName,last)<0 ){ //change from first

if(strcmp(curPtr->firstName,first)<0 )
{
newPtr->next=curPtr->next;
curPtr->next =newPtr; //curPtr->next =newPtr
return headStudentList; //headStudentList
}
}
}

这是结构内部的内容

typedef struct _grade {
char name[4];
double value;
struct _grade *next;} Grade;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct _student {
char *lastName;
char *firstName;
Grade *headGradeList;
struct _student *next;} Student;

最佳答案

我看到的一件事是,当您在 for() 循环中初始化指针时,您正在跳过链接列表的第一个成员。如果您的列表为空怎么办?这不会在末尾添加节点。

关于c - 添加到链接列表的末尾不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com