/*已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号
升序排序*/#include <stdio.h>
#include <stdlib.h>
typedef struct student{long num;float score;struct student *next;
}student,*Student;//创建链表
Student creat()
{Student s;int n = 0;Student p1,p2;p1 = p2 = (Student) malloc(sizeof(student));printf("请输入学生学号和成绩:\n");scanf("%ld %f",&p1->num,&p1->score);while(p1->num != 0){n = n + 1;if(n == 1) s = p1;else p2->next = p1;p2 = p1;p1 = (Student) malloc(sizeof(student));scanf("%ld %f",&p1->num,&p1->score); }p2->next = NULL;return s;
} //输出链表
void print(Student s)
{Student p;printf("\nNow,The records are:\n");p = s;if(s != NULL){do{printf("%ld %5.1lf\n",p->num,p->score);p = p->next;}while(p != NULL);}
}
//排列函数
Student sort(Student a,Student b)
{Student p,q;p = a;long t1;float t2;while(p->next != NULL){p = p->next;}p->next = b;//将b链表接到a链表后面 p = a;while(p){q = p->next;while(q){if(p->num > q->num){t1 = p->num;p->num = q->num;q->num = t1;t2 = p->score;p->score = q->score;q->score = t2;}q = q->next; }p = p->next;}}int main()
{Student a;Student b;a = creat();b = creat();print(a);print(b);printf("排列完成后:");sort(a,b);print(a);
}

谭浩强C程序设计(第四版)p330第10题
建立两个没有头结点的链表,用的是课本上的方法。
合并时,将b链表放在a链表后面,然后进行排序,只交换数据,不交换指向

已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号 升序排序相关推荐

  1. 习题 9.10 已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。

    C程序设计(第四版) 谭浩强 习题9.10 个人设计 习题 9.10 已有a,b两个链表,每个链表中的结点包括学号.成绩.要求把两个链表合并,按学号升序排列. 代码块: #include <st ...

  2. 有两个链表a,b,设结点包括学号,姓名。从a链表中删去与b链表中有相同学号的那些结点。

    #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct linknode ...

  3. 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。

    #include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct student) #define NULL 0 ...

  4. 链表:递归中删除结点不发生断链

    这是使用递归(使用引用)进行删除节点的内存变化 void Del_x(LinkList &L, int x) {//引用if (L == NULL) {//空结点return;}LNode * ...

  5. mysql两表左关联_mysql中一张表LEFT JOIN 左关联两张表语句

    先看实例 代码如下 复制代码 SELECT p.price, pd.name, m.manufacturers_name FROM (products p LEFT JOIN products_des ...

  6. 删除按升序排列的单链表中的所有重复元素

    删除单链表中的所有重复元素 题目 解决思路 代码 说明 题目 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字. ...

  7. ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

    题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...

  8. 37. 两个链表的第一个公共结点

    为什么80%的码农都做不了架构师?>>>    题目:输入两个链表,找出它们的第一个公共结点. 思路:先遍历两个链表得出它们各自的长度,然后让长链表先走,直到长度和短的一致,然后两个 ...

  9. [剑指offer] 两个链表的第一个公共结点

    本文首发于我的个人博客:尾尾部落 题目描述 输入两个链表,找出它们的第一个公共结点. 解题思路 如果两个链表存在公共结点,那么它们从公共结点开始一直到链表的结尾都是一样的,因此我们只需要从链表的结尾开 ...

最新文章

  1. springboot 加载配置信息(静态)
  2. 计算机教授技术追踪劫匪,打脸 911警察
  3. python跟踪脚本进度(类似bash-x)
  4. (String)、toString、String.valueOf的区别
  5. php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...
  6. vue使用iview Timeline 时间轴不显示问题
  7. 一切都是骗局 Windows 8并不是很牛X
  8. leetcode 刷题指南
  9. 七种主流平面板式介绍
  10. Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
  11. mysql+last_query_cost_辛星简译MySQL中的last_query_cost
  12. Installing third-party firmware on x3-55 letv (by quqi99)
  13. 做uni-app时,遇到后台返回base64码,将base64码转为图片,但是图片没有显示出来的解决方法
  14. debian8文件服务器,debian 8 下部署开发环境
  15. SecureCRT 如何快速执行常用命令
  16. 电脑音量100后还嫌小怎么办
  17. box-shadow 属性 详解
  18. Windows 2008 R2 SP1更新补丁报错解决建议
  19. 5W1H分析法 什么是5W1H分析法?
  20. ip地址转换数字函数 iton_IP 地址转换(在点分格式和数字之间相互转换)

热门文章

  1. python生产实战 python 闭包之庖丁解牛篇
  2. Mysql 不使用窗口函数实现分组排序 rank 别名问题
  3. 线性代数拾遗(3)—— “系数矩阵的秩” 和 “齐次线性方程组基础解系向量个数” 的关系
  4. MTK android系统源码修改快速上手
  5. PostgreSQL高效分区表实现-pg_pathman
  6. 响应式网站如何实现?
  7. C语言学习笔记第五天_项目训练
  8. 新人成长:实习一个月感悟
  9. DAO:去中心化的新兴领导者
  10. 我的TOM邮箱收件速度真不慢——邮箱常见问题解答大全!