例题详解:
学生信息管理
查找特定学号,并删除
依然利用双指针技巧,p与pf进行位置确定
struct student {
int stunum;//学号
char name[20];//姓名
float examscore;//考试成绩
float labscore;//实验成绩
float totalmark;//总评成绩
struct student *next;//下一个结点
};
struct student *dele(struct student *head,int stunum) {
struct student *qf=head,*q=head->next;//q为比较的位置,qf来记录前一位置
while(q!=NULL&&q->stunum!=stunum) {
qf=q;
q=qf->next;//不相等同时后移
}
if(q==NULL) {
printf("学号不存在!!\n");//遍历结束
} else {//找到q
qf->next=q->next;//(直接跳过q)
free(q);//释放 q的空间;
}
return(head);
}

本文介绍了一个学生信息管理系统中如何通过双指针技巧实现查找特定学号并删除的功能。使用了结构体定义学生信息,包括学号、姓名、考试成绩、实验成绩、总评成绩及指向下一个节点的指针。通过遍历链表找到指定学号的学生信息并将其从链表中删除。
999

被折叠的 条评论
为什么被折叠?



