C语言经典例74-连接两个链表
目录
- 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-连接两个链表相关推荐
- C语言经典例73-反向输出一个链表
目录 1 题目 2 分析 2.1 方法1-原地逆置 2.2 方法2-递归 3 实现 3.1 实现1-原地逆置 3.2 实现2-递归 4 运行结果 1 题目 反向输出一个链表,链表结构为: typede ...
- C语言经典例98-将字符转为大写字母并写入文件
目录 1 题目 2 分析 3 实现 1 题目 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存. 输入的字符串以!结束. 2 分析 写入 ...
- C语言经典例19-完数
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 因子:假如整 ...
- c语言 如何连接两个程序,C语言连接两个链表程序
创建两个链表,并这两链表连接起来成为一个链表的示例程序,将以下代码保存到一个源文件中:combine_linked_list.c, 如下所示 – #include #include struct no ...
- c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
链表节点的定义 链表作为一种数据结构,由链表节点互相连接构成. 链表节点包含自身的数据和一个指向下一节点的指针. """ Definition of ListNode & ...
- C语言经典例86-两个字符串连接
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 两个字符串连接,有字符串str1和str2,假设str1足够大,要求将str2连接到str1后面 2 分析 我们知道string.h中有字符 ...
- C语言经典例84-一个偶数总能表示为两个素数之和
目录 1 题目 2 分析 3 实现 1 题目 一个偶数总能表示为两个素数之和. 2 分析 暴力法,循环判断 i和 n-i 两个数是否都为素数. 3 实现 #include <stdio.h> ...
- C语言经典例79-字符串排序
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 字符串排序,输出三个字符串(长度小于20),并将其按照ASCII码顺序排序. 2 分析 首先限制三个字符串的输入,本例利用fgets函数,该 ...
- C语言经典例99-文件内容合并和排序
目录 1 题目 2 分析 3 实现 1 题目 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中. 2 分析 先把文件A和文件B的内容都读出来, ...
最新文章
- 编译nginx时的两个报错
- python可以自学吗-大家觉得自学python多久能学会?
- win10下docker如何安装?
- 利用Inotify和Rsync将webproject文件自己主动同步到多台应用server
- Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
- Attachment assignment block里选择的文件是如何传到Netweaver服务器的
- springmvc与struts2的区别
- 【mybatis】一对一关联查询
- 公司mysql数据库设计与优化培训ppt
- PyQt5+VTK环境搭建
- 树形dp-智慧树下你和我
- 如何通过adb命令将apk包导入到安卓设备上
- 通过抓包工具抓包APP就连不上网的解决方案
- 差距越来越大, 直播行业割终结束, 虎牙、斗鱼平分天下?
- 简单实验uwsgi+flask 部署caffe模型
- 别墅家庭无线WiFi覆盖解决方案
- 什么手机便签软件好用
- ker矩阵是什么意思_如何理解CAN通信矩阵
- maven之插件仓库
- 计算方法(二)直接三角分解法解线性方程组