永发信息网

C语言。有两个链表a和b,从a链表中删去与b链表中有相同学号的那些结点!

答案:1  悬赏:10  手机版
解决时间 2021-03-20 13:50
C语言。有两个链表a和b,从a链表中删去与b链表中有相同学号的那些结点!
最佳答案

#include
#include
#include

struct student
{
int num;
char name[10];
struct student *next;
};

int main()
{
void print(struct student *head);
struct student *creat();
struct student *solve(struct student *head_a,struct student *head_b);
struct student *head,*head_a,*head_b;
printf("********初始化链表A********\n");
head_a=creat();
printf("********输出链表A********\n");
print(head_a);

printf("********初始化链表B********\n");
head_b=creat();
printf("********输出链表B********\n");
print(head_b);

printf("********从a链表中删去与b链表中有相同学号的那些结点********\n");
head=solve(head_a,head_b);

print(head);

return 0;
}

struct student *creat()
{
struct student *head,*p,*p1;


p = p1=(struct student *)malloc(sizeof(struct student));
head = NULL;

printf("请输入学生学号和姓名(输入学号0和姓名0停止接收数据):");
scanf("%d%s",&p->num,&p->name);
while(!(p->num == 0 && strcmp(p->name,"0")==0))
{
if(head == NULL)
{
head = p;
p1=head;
p=(struct student *)malloc(sizeof(struct student));
}
else
{
p1->next=p;
p1=p;
p=(struct student *)malloc(sizeof(struct student));
}

printf("请输入学生学号和姓名(输入学号0和姓名0停止接收数据):");
scanf("%d%s",&p->num,&p->name);
}
p1->next=NULL;
return head;
}

struct student *solve(struct student *head_a,struct student *head_b)
{
struct student *p,*p1,*t;
p=p1=head_a;

if(head_b == NULL)
{
return head_a;
}

while(p!=NULL)
{
t=head_b;


while(t->next!=NULL && (t->num!=p->num))
{
t=t->next;
}

if(t->num==p->num)
{
if(p==head_a)
{
head_a=head_a->next;
p1=p=head_a;
}
else
{
p1->next=p->next;
p=p->next;
}
}
else
{
p1=p;
p=p->next;
}
}
return head_a;
}

void print(struct student *head)
{
struct student *p;

p = head;
while(p!=NULL)
{
printf("%d %s\n",p->num,p->name);
p=p->next;
}
}


这样可以么?追问呃呃,我的代码里面没有struct student *solve(struct student *head_a,struct student *head_b)函数,,,,看完你的答案还是有点没懂·······
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公积金贷款需要户口本,本人系集体户口,怎么
船舶制造 船艏,中艏都用什么表示?
给鱼盐浴是泡一下还是加到缸里盐呀~
电影里特工用的什么照相机,就是那种一摁一摁
上岛咖啡开发区店在什么地方啊,我要过去处理
明天开始连载小说了,好久没动脑有点生疏哎,
江西南昌周雪华现在怎样
北美拟鳄龟18斤重的多少钱一只
朱氏长汀谱武平迁出朱景深后裔
wow5.0盗贼如何
请问这个dk的符文是什么插件 怎么移动位置或
中心卫生院晚上听班制度符合劳动法吗
湖南女子大学的服装设计这个专业怎么样?
迅雷下载电影一直显示连接资源怎么办
税费月末不计提可以吗
推荐资讯
阅读下列图片,完成小题。1.图片中人类行为符
中心商业步行街地址在哪,我要去那里办事
中国移动可不可以申请流量用完自动断网
我借钱给朋友,出于信任没留下借条之类的任何
用C语言设计五子棋程序,需要实验报告和程序
驾校考试科目一前一天预约取消会怎么样
买新房怎么看新房能不能住
填空题“a>b>0”是“a2>b2”的________?条
宝霖如意家常菜馆这个地址在什么地方,我要处
按照各项工作之间的逻辑关系见表2,试绘制双
我想问一下千影浏览器在线片库入口在哪,标签
女人胸罩分ABCDEFG型号,它区分标准是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?