有两个链表a和b,设结点中包含学号和姓名,从a链表中删除和b链表中相同学号的结点
来源:互联网 发布:找出出现最多的词 算法 编辑:程序博客网 时间:2024/05/23 12:53
#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct student)#define NULL 0int n=0;struct student {int num;char name[20];struct student *next;};struct student *creat(void) //创建学生结构体链表{ struct student *head,*p1,*p2; p1=p2=(struct student *)malloc(LEN); scanf("%d %s",&p1->num,p1->name); head=NULL; while(p1->num!=0){ n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(LEN); scanf("%d %s",&p1->num,p1->name); } p2->next=0; n=0; return head;}struct student *deletesame(struct student *a,struct student *b){ //删除从a中删除b中相同学号的学员struct student *head=a,*p1=a,*p2=b,*p3=a; int k=0,s=0; while(p1!=0){ while(p2!=0){ if(p1->num==p2->num) { if(k==0) {head=p1->next; //如果a链表头发现相同需要删除。 s++; } else { p3->next=p1->next; s++; } } p2=p2->next; } if(s>0){ //发生删除操作后的处理 s=0; p2=b; p1=p1->next; }else{ // 未发生删除操作后的处理 p2=b; k++; p3=p1; p1=p1->next;}}return head;}void print( struct student *p){ while(p!=0) { printf("%d %s\n",p->num,p->name); p=p->next;}}int main(){ struct student *a=creat(); struct student *b=creat(); struct student *head=deletesame(a,b); print(head); return 0;}
阅读全文
0 0
- 有两个链表a和b,设结点中包含学号和姓名,从a链表中删除和b链表中相同学号的结点
- 有两个链表a,b,设结点包括学号,姓名。从a链表中删去与b链表中有相同学号的那些结点。
- 有a,b两个已按学号升序排序的链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,仍按学号升序排列。
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- 已有 a、b 两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按成绩升序排列。
- 删除链表A中与链表B结点相同的结点
- 删除链表中的中间节点和 a/b 处的结点 Python 版
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 雅虎面试题─有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- android tabhost下嵌套两个activity(不妨设A和B),其中B包含SurfaceView控件,A可以跳转到C(也是Activity),B会对C的生命周期有奇怪的影响,从何解决?
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 比较两个字符串A和B,确定A中是否包含B中所有的字符。
- 比较两个字符串A和B,确定A中是否包含B中所有的字符。
- Stylus—CSS预处理框架
- rem
- adb命令
- 科技有意思丨用科技来反抗这个看脸的世界
- 中国六大车企利润之和不及丰田一家
- 有两个链表a和b,设结点中包含学号和姓名,从a链表中删除和b链表中相同学号的结点
- Android O 开发指南
- 哇塞!九步成功实现事件响应计划!
- 任意三点绘制圆弧 求弧长
- Scrapy抓取西刺高匿代理ip
- spin_lock 自旋锁 和 mutex_lock 互斥锁的区别
- jQuery+Ajax
- Swift
- Cannot change version of project facet Dynamic Web Module to 2.3.