C++之合并两个链表

2023-10-31

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

#include<stdio.h>

typedef struct student{
    int num;
    double grade;
    struct student *next;
}student;

student *merge(student *a,student *b){
    //先将两个链表合并,在对合并后的链表排序
    student *head = a;
    while(a->next)
        a = a->next;
    a->next = b;

    //使用选择排序,对链表进行排序
    //最小的放在未排序的链表头部
    student *pre = head;
    while(pre->next){
        a = pre->next;  
        while(a){
            if(pre->num > a->num){
                int num = pre->num;
                double grade = pre->grade;
                pre->num = a->num;
                pre->grade = a->grade;
                a->num = num;
                a->grade = grade;
            }
            a = a->next;
        }
        pre = pre->next;
    }
    return head;
}

int main(){
    student a[3] = {{1,79},{4,36},{5,79}};
    for(int i=0;i<2;i++)
        a[i].next = &a[i+1];
    student b[2] = {{2,38},{6,78}};
    for(int i=0;i<1;i++)
        b[i].next = &b[i+1];
    student *combine = merge(a,b);
    while(combine){
        printf("%d -> %lf\n",combine->num,combine->grade);
        combine = combine->next;
    }
    return 0;
}

结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++之合并两个链表 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 使用 C# 读取 Soap 消息

  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • iOS 快速设置Launch Image 启动图片

    Step1 1 点击Image xcassets 进入图片管理 然后右击 弹出 New Launch Image 2 如图 右侧的勾选可以让你选择是否要对ipad 横屏 竖屏 以及低版本的ios系统做支持 这边我选了ios8 0 ios7
  • std::deque、std::queue、std::stack、std::list 内容概要

    deque deque的简介 deque是 double ended queue 的缩写 和vector一样都是STL的容器 deque是双端的 而vector是单端的 deque在接口上和vector非常相似 在许多操作的地方可以直接替换
  • .bat文件闪退,原因及解决

    之前学习mongodb 创建了一个txt文件 内容是 D cd D Program Files MongoDB bin mongod exe dbpath G data db 然后更改文件名称为 bat时 一运行就一闪就没了 后来 用cmd
  • 篇七:二分法查找

    二分查找也称折半查找 Binary Search 它是一种效率较高的查找方法 但是 二分查找要求线性表必须采用顺序存储结构 不宜用于链式结构 而且表中元素按关键字有序排列 解释 所以二分查找的时候一定要是有序的数组 二分法查找适用于数据量较
  • 基于opencv3的本质矩阵(essential matrix)估计算例

    至今opencv3面世快两年了 五一期间抽空看了下新增的几个关于双目视觉标定算法的使用 关于双目的标定有一类方法是基于本质矩阵 Essential matrix 的标定方法 本质方程与基础方程都是刻画双目视觉极几何关系的两个方程 只不过它们
  • 王者荣耀虚拟服务器设置方法,《王者荣耀》操作设置详解

    王者荣耀 操作设置详解 大神团 小风 发布于10 26 近期手游平台有一款名为 王者荣耀 其优质的MOBA体验让无数玩家爱不释手 而其中的操作模式更值得玩家去深究 究竟这款游戏的操作设置有何作用 玩家又该如何利用好操作模式 就一起来看看吧
  • flask无法创建数据库

    今天实操flask连接mysql的 就短短几行代码 弄得头都大 大概没有打代码的天赋吧 当我定义完这个模型类 跑程序 错误一 TypeError column got an unexpected keyword argument prima
  • 实战:windows如何双显示屏独立显示

    现实中 时常看到那些大佬们同时操作多个显示屏 感觉甚是带劲 于是我经过一番摸索 也找到了一条一台电脑两个显示屏独立显示的方法 再此记录一下 希望能帮到有需要的小伙伴 我的操作环境 一台普通笔记本 一个液晶显示屏 前提 你的笔记本或者台式机主
  • python编程:字典的典型应用:二级(多级)菜单,实现户籍省市的多层级选择

    一 编程题目 现实生活中我们经常要用到二级菜单或者多级菜单 下面我们以一个信息系统中关于户籍省市的选择利用字典来实现一个二级菜单 要求以下面的内容来定义二级菜单 广东省 广州市 珠海市 东莞市 惠州市 汕头市 湛江市 河源市 梅州市 湖南省
  • Elasticsearch密码配置(包括集群与单节点)

    ES单节点密码配置 1 修改配置文件 在配置文件中添加如下参数 xpack security enabled true xpack security transport ssl enabled true xpack license self
  • win7新建文本文档快捷键

    由于编者水平有限 文中难免会有错误和疏漏 请各位读者能提出宝贵建议或给予指正 可在博文下评论指出 我会及时改进 在此先感谢各位 本文是自己学习所做笔记 欢迎转载 但请注明出处 http blog csdn NET yijuanxia 环境
  • 快速了解日志概貌,详细解读13种日志模式解析算法

    云智慧 AIOps 社区是由云智慧发起 针对运维业务场景 提供算法 算力 数据集整体的服务体系及智能运维业务场景的解决方案交流社区 该社区致力于传播 AIOps 技术 旨在与各行业客户 用户 研究者和开发者们共同解决智能运维行业技术难题 推
  • 超级入门题:A+B

    这个题没什么好讲的 两个数 一个a 一个b 两数相加不超过int范围 求两数之和 include
  • bilibili老版本_哔哩哔哩5.13.0旧版本下载-bilibili5.13.0旧版本下载v5.13.0旧版本-西西软件下载...

    bilibili5 13 0旧版本是一款bilibili最近推出的up主动态评论的版本的前一款版本 这个版本相比较新版而言减少了up主评论动态显示 对于不少小伙伴来说 bilibili毕竟是一个用来看视频的地方 所以对于文字评论不怎么感冒
  • Java中只有值传递?一篇文章彻底弄懂

    新手上路 记录自己的理解 在C 中 函数传值有两种方式 即值传递和引用传递 而在Java中 只有值传递 即便传递的对象为引用类型 如String 所谓的值传递是指在调用函数时将实参复制一份传递到函数中 这样函数中操作的是实参的副本 不会对实
  • springboot将图片上传至七牛云服务器(超详细)

    我们在公司的业务开发中 经常会接触到图片上传功能 有很多小伙伴都会在这里遇坑 特别是将图片上传至七牛云服务器上 网上的很多讲解也都很不明确 那么今天我们就要来讲一讲如何将本地的图片上传至七牛云服务器上 配合步骤自己做一个小的demo吧 本文
  • VirtualBox 虚拟机里网络很慢的解决方法

    VirtualBox 升级到6 0 4 后发现这个问题 Mac 主机网速很快 但虚拟机 ubuntu 里网络很慢 首先尝试多种不同的网络连接模式 都不能解决 再回头调试 发现域名解析很慢 问题定位在 DNS 问题 ping 一下百度 15秒
  • 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器

    使用Python OpenCV进行简单的场景边界 拍摄转换检测器 1 效果图 2 实现 2 1 步骤 2 2 什么是 场景边界 和 拍摄过渡 2 3 代码目录结构 2 源码 参考 这篇博客起源于朋友分享蝙蝠侠7更新了 而我没有办法去最近的书
  • Learing blockchain in go

    Windows下JetBrains GoLand环境配置记录 根据文末Reference 1 实现的迷你区块链 暂有 block chain pow UTXO 现在实现的bc存在double spending问题 并且创世区块和创世交易的哈
  • C++之合并两个链表

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