两个单链表的合并(C语言实现)

2023-10-27

单链表的合并还是挺简单的,直接上代码吧。

#include <stdio.h>
#include <stdlib.h>
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
    ElementType Data;
    PtrToNode   Next;
};
typedef PtrToNode List;
List Read(); /* 链表读取 */
void Print( List L ); /*链表输出;空链表将输出NULL */
List Merge( List L1, List L2 );  /*链表合并*/
int main()
{
    List L1, L2, L;
    L1 = Read();  //读取链表1
    L2 = Read();  //读取链表2
    L = Merge(L1, L2);  
    Print(L);
    Print(L1);
    Print(L2);
    return 0;
}
List Merge( List L1, List L2 )
{
    List L, p1, p2, r ;
    p1 = L1->Next;
    p2 = L2->Next;
    L = (List)malloc(sizeof(struct Node));
    L->Next = NULL;
    r = L;
    while (p1 && p2){
        if(p1->Data < p2->Data){
            r->Next = p1;
            r = p1;
            p1 = p1->Next;
        }
        else{
            r->Next = p2;
            r = p2;
            p2 = p2->Next;
        }
    }
    if(p1)
        r->Next = p1;
    else
        r->Next = p2;
 L1->Next = NULL;
 L2->Next = NULL;
 return L;
}
List Read()
{
    int n, i;
    List L, p, s;
    scanf("%d",&n);
    L = (List)malloc(sizeof(struct Node));
    L->Next = NULL;
    p = L;
    for(i = 0;i < n; ++i){
        s = (List)malloc(sizeof(struct Node));
        scanf("%d",&s->Data);
        s->Next = p->Next;
        p->Next = s;
        p = s;
    }
    return L;
}
void Print(List L)
{
 List p;
 p = L->Next;
 if (L->Next==NULL)
 {
  printf("NULL");
 }
 while(p)
 {
  printf("%d ", p->Data);
  p = p->Next;
 }
 printf("\n");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个单链表的合并(C语言实现) 的相关文章

  • Hadoop集群搭建【web端不显示从节点问题】

    系统 CentOS7 环境 jdk8 版本 hadoop 2 7 7 结构 hadoop01 namedata nodedata hadoop02 nodedata hadoop03 nodedata 配置 hadoop 2 7 7 etc
  • 数仓模型理论

    1 数仓介绍 2 建模理论 建模的目标 性能 成本 效率 数据质量中找到平衡点 2 0 三范式 123要求逐渐严格 每一列不可分割 属性要完全依赖于主键 不可以只依赖一部分 数据重复很多 案例中主键是学生id和课程 所属系和系主任只依赖学生
  • qt的QListwiget设置横向的排列

    cpp view plain copy contentsWidget new QListWidget contentsWidget gt setViewMode QListView IconMode contentsWidget gt se
  • MyBatis映射文件与核心配置文件

    目录 1 Mapper 映射文件 2 POJO类 3 Junit测试代码 4 MyBatis 配置文件详解 5 mapper 映射配置文件详解 1 Mapper 映射文件 在 MyBatis 中 推荐使用 mapper 作为包名 我们只需要
  • LeetCode 53. Maximum Subarray 最大连续字段和问题

    考察 最大连续字段和问题 解决问题时间复杂度 O n 问题隐含条件 如果给出的数集都是负数 那么最大连续字段和就是 最大的那个负数 eg 2 1 结果应该输出 1 而不是 0 int maxSubArray int nums int num

随机推荐

  • vue中 $event 的用法--获取当前父元素,子元素,兄弟元素

    vue中 event 的用法 获取当前父元素 子元素 兄弟元素
  • opencv-python常见方法使用教程(一)

    文章目录 一 OpenCV是什么 二 使用步骤 1 安装 2 读取图片 方式一 方式二 3 保存图片 4 图像的基本操作 像素操作 图像切割 图像平移 图像旋转缩放 图片大小调整 总结 一 OpenCV是什么 OpenCV是一个基于BSD许
  • springboot入门

    文章目录 springboot入门 1 spring boot简介 2 微服务 3 环境搭建 1 maven配置 2 sprintboot HelloWord 1 创建一个maven工程 jar 2 导入spring boot相关依赖 3
  • CCNP的考试是中文还是英文?

    思科的所有考试都是英文 虽然CCNP的考试对考生的学历 专业没什么要求 但是它的考试是全英文考试 如果你的英语水平太糟糕的话 不太建议你考 不然的话很可能连考试题目都看不懂 CCNP培训费用 分两种情况 线上 3000左右 线下 线下的两倍
  • 【JAVA】id:‘org.springframework.boot‘, version:‘2.3.3.RELEASE‘] was not found in any of the following

    以下内容 均为治疗下载不了gradle的包的问题 gradle 加载新引入的项目 然后下载包报错 id org springframework boot version 2 3 3 RELEASE was not found in any
  • 用element-ui渲染一个二级数据表格即复杂表格,并且自定标题

    最终完成的效果 废话不多说 直接上代码 不懂来问
  • 在已排序的数组中查找

    如果数组已经排好序了 就可以使用 Arrays binarySearch 执行快速查找 千万不要对 未排序的数组使用binarySearch 否则结果不可预料 下面的例子使用 RandIntGenerator填充数组 再用此生成器生成一个值
  • Ruoyi若依前后端分离框架【若依登录详细过程】

    本文主要写RuoYi项目前端登录流程 后端包含ruoyi admin ruoyi common ruoyi framework等多个模块 ruoyi admin为启动模块 先看一下ruoyi admin src main applicati
  • 实例说明列表、字典中元素的提取

    经过这几天工作的忙碌 我终于又静下心来 让我来分享一些实际的案例并分享它的做法 1 案例 获取下面列表当中的每一个值 不必在同一行显示 list 1 2 3 4 5 6 7 8 9 10 11 12 for x y in list prin
  • java openssh_java – 将openssh公钥转换为ssh2(RFC 4716)格式

    主要问题就在于此 将openssh公钥解析为符合 rfc 4716格式 唯一的问题是 它必须在java中 使用ssh keygen 它只是单行命令 ssh keygen e f openssh key pub 不幸的是 我在Java中找不到
  • VMware下桥接设置

    操作环境 主机 Win7 X86 SP1 虚拟机 VMware station 8 虚拟机里的系统 Fedora 15 环境上 不管什么系统 什么版本的虚拟机 使用上都是大同小异的 毕竟核心是不变的 VM虚拟机下linux系统 桥接和NAT
  • 利用GitHub搭建一个你的博客

    为什么要写博客 作为一只程序猿 踩到坑是一件非常正常的事 当我们踩到坑的时候就会花心思去研究它 可能我们能够在当时把问题弄懂并把问题给解决掉 可是过一段时间我们又遇到了同样的坑的时候 难道还要再去 百度 Google 重新搜索一遍吗 这样做
  • QT4.8.4安装步骤简述

    QT4 8 4安装步骤简述 win10上面安装QT4 8 4 creator 的步骤如下 首先需要软件 1 MinGW gcc440 1 zip 2 qt win opensource 4 8 4 mingw exe 3 qt creato
  • React生态之React环境搭建

    React特点 Declarative 声明式编码 Component Based 组件化编码 高效的DOM Diff 算法 最小化页面重绘 单向数据流 React 生态 React React Router Redux Axios Bab
  • 【蓝湖前端校招一面】

    蓝湖 一面 无笔试 直接约面试 时长一小时 讲讲项目中的难点 讲讲原型链 更改原型的方法有什么 proto setPrototypeOf 讲讲闭包 es6 的新数据结构知道哪些 Object 和 Map 的区别 一道 this 相关的输出题
  • 协方差矩阵与PCA深入原理剖析

    一 协方差矩阵 一个维度上方差的定义 协方差的定义 a 协方差就是计算了两个维度之间的相关性 即这个样本的这两个维度之间有没有关系 协方差为0 证明这两个维度之间没有关系 协方差为正 两个正相关 为负则负相关 协方差矩阵的定义 对n个维度
  • Unity期末AI足球游戏小项目(免费开源)

    目录 游戏介绍 整体结构 部分截图 答辩论文截图 答辩问题 该游戏项目仅供参考 下载链接在文末 若需要答辩论文请私聊 版本 Unity 2018 4 36 游戏介绍 Crazy Soccer 是一款有趣的足球模拟游戏 玩家将看到两个球队之间
  • 数据结构基本介绍

    数据结构基本介绍 1 基本数据结构 1 数组 字符串 Array String 优点 构建一个数组非常简单 能让我们在 O 1 的时间里根据数组的下标 index 查询到某个元素 缺点 构建时必须分配一段连续的空间 查询某个元素是否存在时需
  • 备忘录莫名其妙的没了_iPhone上记录重要工作事宜的备忘录突然不见了,此时该怎么办呢?...

    不管是一般的安卓手机 还是iPhone手机 手机上都拥有备忘录功能 而iPhone手机的备忘录功能非常的实用 我们不仅可以在备忘录上记录文字 还能够在备忘录中插入图片 编写简易的表格等等 对于不管是只想要用备忘录记账 记事或记心情的小伙伴们
  • 两个单链表的合并(C语言实现)

    单链表的合并还是挺简单的 直接上代码吧 include