中易网

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

答案:1  悬赏:50  
解决时间 2021-01-03 08:42
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)函数,,,,看完你的答案还是有点没懂·······
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
高医的意思是什么啊?请解释下!
书上说,三极管内部,Uce过小时,不能使集电
插上网线开机变慢,哪位高手知道是啥原因呢?
c++语言 第一行有个m,表示有m组数据。接下来
破損的意思是什么?破損的释义是什么啊?
求opengl开发需要的一套头文件,动静态库文件,
同性找人下什么软件
英语见面常用问候语有哪些
珠辉玉丽的意思是什么啊?请解释下!
凡弱的意思是什么?凡弱的释义是什么啊?
公务员双开后能进国有企业么
国际足球热身赛是什么比赛啊?
河南省灵宝市公安局
西安黑灯舞厅论坛
17千瓦一年电池板发多少电
推荐资讯
为何待机唤不醒
从常州火车站到丹阳访仙镇太平桥村怎么坐车阿
输入10个整数存入一维数组,再按逆序重新存放
梦见已故母亲卖大白菜
拉呱的意思是什么?拉呱的释义是什么啊?
娄底市农业局办公地址在什么地方,我要处理点
上海移动宽带松江区车墩镇新余村覆盖了吗
之前在句容交的养老保险,后来两年没交,现在公
燃气热水器万和半球威普哪个牌子好
弹墨的意思是什么?弹墨的释义是什么啊?
马颊河的意思是什么啊?请解释下!
为什么很多人都称汉服复兴者为“汉服圈
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?