关于链表的修改

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:21:50
1.编写一个函数belongTo(),它负责检查一个指定的准考证号是否已经在链表中,如果已经存在,则返回在第几个结点,否则返回0.
2.输入一个新考生的信息,以准考证号为排序规则(从小到大),将新结点插入链表(利用belongTo()进行检查,若输入的准考证号已经存在,给出警告并要求重新输入)。编写函数insert()实现这一功能。
3.输入一个要删除的考生的准考证号,将该准考证号的考生结点从链表中删除(利用belongTo()进行检查,若输入的准考证号不存在,给出警告并要求重新输入)。编写函数delete()实现这一功能。
4.假定已经建立链表,现要求在main()函数中提供操作选择菜单:
0:exit
1:insert
2:delete
3:display
当选择1时,调用insert()将类似下列考生的信息插入链表:
05040005 zhao 281
当选择2时,调用delete()从链表中删除类似下列考生的结点:
05010003 wang 205
在这个基础上修改一下
#include <stdlib.h>
#include <stdio.h>
struct node
{
char num[8];
char name[16];
float score;
struct node *next;
};
void main()
{
struct node *creat(struct node *head,int n);
void print(struct node *head);
struct node *head;
head=NULL;
int n;
printf("请输入需要建立的人数:");
scanf("%d",&n);
printf("请依次输入考号,姓名和成绩:\n");
head=creat(head,n);

大哥,你都没说清楚你的链表是什么类型的?

单链表还是双链表?
是不是循环链表?

对于你的问题,给一个建议:鉴于题目所述是链式存储,没有随机访问的特性,所以belongTo()函数的实现只能采用 顺序查找 的查询方法。