概述
先建立学生成绩链表,然后删除那些分数低于一定值的节点
(多了个删除节点
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
int num;
char name[10];
int score;
struct student *next;
}Student;
// typedef struct _list
// {
// Student head;
// }List;
Student *Creat_Stu_Doc(); //创建链表
Student *DeleteDoc(Student*head,int min_score); //分数低于..删除
void Ptrint_Stu_Doc(Student *head); //打印链表
int main()
{
// List list;
// list.head.next=NULL;
// int number;
// scanf("%d", &number);
// if(number != 0){
// struct stud_node *Creat_Stu_Doc();
// }
Student *head;
int minscore;
head = Creat_Stu_Doc();
scanf("%d", &minscore);
Student *new = DeleteDoc(head, minscore);
Ptrint_Stu_Doc(new);
return 0;
}
Student *Creat_Stu_Doc()
{
//List list;
int number;
Student *head=NULL, *tail=NULL;
scanf("%d", &number);
do{
Student *p = (Student *)malloc(sizeof(Student));
scanf("%s%d", &p->name, &p->score);
p->num=number;
p->next=NULL;
if(head==NULL){
head=p;
}
else{
tail->next=p;
}
tail=p;
scanf("%d", &number);
}while(number!=0);
return head;
}
Student *DeleteDoc(Student *head,int min_score)
{
Student *p, *q;
while(head != NULL&& head->score < min_score){
p=head;
head=head->next;
free(p);
}
if(head==NULL)
return NULL;
else{
for(q=NULL, p=head; p;q=p, p=p->next){
if(p->score < min_score){
q->next=p->next;
free(p);
}
}
}
return head;
}
void Ptrint_Stu_Doc(Student *head)
{
while(head!=NULL){
printf("%d %s %dn", head->num, head->name, head->score);
head = head->next;
}
return;
}
最后
以上就是漂亮小鸽子为你收集整理的创建学生成绩链表,并删除低于一定分数的节点的全部内容,希望文章能够帮你解决创建学生成绩链表,并删除低于一定分数的节点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复