目录

  • 1 题目
  • 2 分析
  • 3 实现
  • 4 运行结果

1 题目

连接两个链表,如有链表A和链表B,将链表B按原顺序接在链表A后面,链表结构为:

typedef int ElementType;
typedef struct node {ElementType data;struct node *Next;
} *List;

2 分析

本题在逻辑上很简单,不难想出只要得到链表A的最后一个节点指针,然后将其指向链表B的第一个节点即可,注意创建链表时,链表带头节点,实际上链表B的第一个节点为链表B的头节点的下一个节点B->Next(程序的第57行)。

3 实现

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>typedef int ElementType;
typedef struct node {ElementType data;struct node *Next;
} *List;// 创建链表
List CreateList(void) {List L = (List)malloc(sizeof(struct node));L->data = 0;L->Next = NULL;return L;
}// 初始化链表节点数据
void InitList(List L) {srand((unsigned)time(NULL)); // 随机数种子for (int i = 0; i < 10; i++) {List p = (List)malloc(sizeof(struct node));p->data = rand() % 100; // 节点数据为随机数,随机数范围为0~99p->Next = L->Next;L->Next = p;}
}// 打印链表
void PrtList(List L) {List p = L->Next;while (p) {printf("%d ", p->data);p = p->Next;}printf("\n");
}int main(void) {List A = CreateList();InitList(A);sleep(1); // 延迟一秒,需要头文件 unistd.hList B = CreateList();InitList(B);printf("链表A为:");PrtList(A);printf("链表B为:");PrtList(B);// 找到链表A的最后一个节点List tmp = A;while (tmp->Next != NULL) {tmp = tmp->Next;}//  连接A和B,注意链表是带头结点的,连接时要忽略B的头结点,从第一个节点开始tmp->Next = B->Next;printf("连接后为:");PrtList(A);return 0;
}

4 运行结果

链表A为:73 12 57 72 51 71 11 56 48 30
链表B为:25 56 30 84 78 85 7 52 96 33
连接后为:73 12 57 72 51 71 11 56 48 30 25 56 30 84 78 85 7 52 96 33

C语言经典例74-连接两个链表相关推荐

  1. C语言经典例73-反向输出一个链表

    目录 1 题目 2 分析 2.1 方法1-原地逆置 2.2 方法2-递归 3 实现 3.1 实现1-原地逆置 3.2 实现2-递归 4 运行结果 1 题目 反向输出一个链表,链表结构为: typede ...

  2. C语言经典例98-将字符转为大写字母并写入文件

    目录 1 题目 2 分析 3 实现 1 题目 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存. 输入的字符串以!结束. 2 分析 写入 ...

  3. C语言经典例19-完数

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 因子:假如整 ...

  4. c语言 如何连接两个程序,C语言连接两个链表程序

    创建两个链表,并这两链表连接起来成为一个链表的示例程序,将以下代码保存到一个源文件中:combine_linked_list.c, 如下所示 – #include #include struct no ...

  5. c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...

    链表节点的定义 链表作为一种数据结构,由链表节点互相连接构成. 链表节点包含自身的数据和一个指向下一节点的指针. """ Definition of ListNode & ...

  6. C语言经典例86-两个字符串连接

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 两个字符串连接,有字符串str1和str2,假设str1足够大,要求将str2连接到str1后面 2 分析 我们知道string.h中有字符 ...

  7. C语言经典例84-一个偶数总能表示为两个素数之和

    目录 1 题目 2 分析 3 实现 1 题目 一个偶数总能表示为两个素数之和. 2 分析 暴力法,循环判断 i和 n-i 两个数是否都为素数. 3 实现 #include <stdio.h> ...

  8. C语言经典例79-字符串排序

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 字符串排序,输出三个字符串(长度小于20),并将其按照ASCII码顺序排序. 2 分析 首先限制三个字符串的输入,本例利用fgets函数,该 ...

  9. C语言经典例99-文件内容合并和排序

    目录 1 题目 2 分析 3 实现 1 题目 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中. 2 分析 先把文件A和文件B的内容都读出来, ...

最新文章

  1. 编译nginx时的两个报错
  2. python可以自学吗-大家觉得自学python多久能学会?
  3. win10下docker如何安装?
  4. 利用Inotify和Rsync将webproject文件自己主动同步到多台应用server
  5. Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
  6. Attachment assignment block里选择的文件是如何传到Netweaver服务器的
  7. springmvc与struts2的区别
  8. 【mybatis】一对一关联查询
  9. 公司mysql数据库设计与优化培训ppt
  10. PyQt5+VTK环境搭建
  11. 树形dp-智慧树下你和我
  12. 如何通过adb命令将apk包导入到安卓设备上
  13. 通过抓包工具抓包APP就连不上网的解决方案
  14. 差距越来越大, 直播行业割终结束, 虎牙、斗鱼平分天下?
  15. 简单实验uwsgi+flask 部署caffe模型
  16. 别墅家庭无线WiFi覆盖解决方案
  17. 什么手机便签软件好用
  18. ker矩阵是什么意思_如何理解CAN通信矩阵
  19. maven之插件仓库
  20. 计算方法(二)直接三角分解法解线性方程组

热门文章

  1. 1119: 零起点学算法26——判断奇偶数
  2. jfinal集成使用shiro
  3. lucene,基于QueryParser的搜索
  4. 理解DataSet的数据缓存机制
  5. 黑马vue---14、v-model双向绑定
  6. 石川es6课程---4、箭头函数
  7. 看jquery3.3.1学js类型判断的技巧
  8. day2:作业 购物车程序及升级版本
  9. CSS3 background-image背景图片相关介绍
  10. 将Java程序打jar包并运行