已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
来源:互联网 发布:淘宝创业必备知识 编辑:程序博客网 时间:2024/06/05 07:06
#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct student)#define NULL 0int n=0;struct student {int num;char name[10];struct student *next;};struct student *creat(void){ //创建链表函数struct student *head,*p1,*p2;p1=p2=(struct student *)malloc(LEN);head=NULL;scanf("%d %s",&p1->num,p1->name);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=NULL; n=0; return head;}struct student *ronghe(struct student *p1,struct student *p2){ //链表合并函数struct student *p=p1;while(p1->next!=NULL) p1=p1->next; p1->next=p2;return p;}void paixu(struct student *p){ //链表排序函数 char tname[20]; int tnum,k=0,i=1; struct student *p1; p1=p; while(i!=0) { while(p1->next!=NULL){ if(p1->num>p1->next->num) { tnum=p1->num; p1->num=p1->next->num; p1->next->num=tnum; strcpy(tname,p1->name); strcpy(p1->name,p1->next->name); strcpy(p1->next->name,tname); k++; } p1=p1->next; } p1=p; if(k>0){k=0;} else i=0; }}void print(struct student *p){ //打印链接函数while(p!=NULL){ printf("%d %s\n",p->num,p->name); p=p->next;}}int main(){struct student *p1=creat();struct student *p2=creat();struct student *p=ronghe(p1,p2);paixu(p);print(p);}
阅读全文
0 0
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- 已有 a、b 两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按成绩升序排列。
- 有a,b两个已按学号升序排序的链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,仍按学号升序排列。
- 有两个链表a,b,设结点包括学号,姓名。从a链表中删去与b链表中有相同学号的那些结点。
- 有两个链表a和b,设结点中包含学号和姓名,从a链表中删除和b链表中相同学号的结点
- 【C++】建立一个学生信息链表,每个结点包括:学号、姓名、成绩。【原创技术】
- P318_118 合并两个链表,并按照学号升序排列。用类冒泡排序法对链表进行排序
- 合并两个升序链表
- C语言合并两个带头节点升序排列链表
- 合并两个已有序(升序)链表的操作!
- 建立一个链表,每个结点数据包括:学号、姓名,性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- 将两个升序排列的链表合并后升序排序打印.
- 有10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数: (1)根据学生的信息建立链表; (2)输出链表; (3)输入一个学生的学号,查找链表中是否有该学生; (4)在第i
- 合并两个升序线性链表
- 两个升序单向链表的合并
- 合并两个升序链表(递归)
- 关于SpringMVC中重定向
- Springboot连接同一物理机上多数据库
- Unity3D眼镜Shader技术实现
- 架构师日记——Varnish的性能调优
- 在用maven搭建的springmvc项目中配置使用log4j日志文件
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- JS中的作用域和闭包的小知识点
- 不使用流程控制语句,打印出1~100的整数
- 关于zabbix的安装
- Tensorflow中使用 LSTM + CTC 的例子
- 软考上午题难点5分钟攻克系列(三)
- SQL Server中的小數近似處理實例
- gstreamer入门
- django 使用 oracle 数据库的问题