C语言经典例74-连接两个链表

经典C语言程序100例之七四 【程序74】 题目:连接两个链表。 1.程序分析: 2.程序源代码: #include “stdlib.h” #include “stdio.h” struct list { int data; struct list *next; }; typedef struct list node; typedef node *link; link delete_node(link pointer,link tmp) {if (tmpNULL) /delete first node/  return pointer- 阅读详情

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~99
        p->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.h
	List 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
连接两个链表(使用链表创建).txt 该文件里面有用C语言实现两个链表之间的连接。 立即下载

相关推荐

NuPlayer 之 Renderer

触发postDrainAudioQueue_l()或postDrainVideoQueue()开始渲染。解码器输出数据 → NuPlayer::Decoder::onMessageReceived。音频数据存入mAudioQueue,视频数据存入mVideoQueue。• 每次写入后通过mNotifyConsumed通知解码器。• 通过AudioSink::write()写入音频设备。• 根据VSync信号和音频时钟调整渲染时机。• 通过Surface直接提交给显示系统。

aningxiaoxixi的博客 310

C语言练习示例74:连接两个链表

题目:连接两个链表。

新程序圆 1225

实现自己的AI视频监控系统-第一章-视频拉流与解码4(重点)

使用本章节代码请引用此优快云链接,尊重知识、尊重他人劳动。这一小节将正式进入代码实现部分。我们会结合实际业务需要和拉流解码流程实现一个灵活、轻便、易用的视频拉流解码模块,支持多路视频拉流解码且可以动态更新更新内部参数。在开始设计之初,我们首先考虑的是使用大家所熟知的 **OpenCV(cv2.VideoCapture)**来实现拉流和解码功能。它的 API 简单直接,几行代码就能实现从网络流中读取帧,对于快速原型验证来说非常方便。然而,在经过深入的调研和测试后,我们发现 OpenCV 在处理多路视频流、追

soulproficiency的博客 2268

将一个单向链表连接到另一个单向链表的末尾

3.10 13.将一个单向链表连接到另一个单向链表的末尾。

qq_33551749的博客 2630

基于 STM32 单片机的实验室多参数安全监测系统设计与实现

本系统以 STM32F103C8T6 单片机为核心,集成温湿度监测、烟雾检测、气体泄漏报警、人体移动监测等功能模块,通过 OLED 显示屏实时显示数据,并支持 Wi-Fi 远程传输。系统可对实验室异常环境参数(如高温、烟雾、燃气泄漏)及非法入侵实时报警,保障实验室安全。本文从硬件选型、电路设计到软件实现提供了完整的实验室安全监测系统方案,可根据实际需求调整传感器类型和通信方式,适用于科研、教学等场景的环境安全防护。:可增加继电器模块控制通风设备或切断电源,集成 ZigBee 组网实现多实验室联动监测。

weixin_42300449的博客 1285

C/C++李峋同款跳动的爱心代码(完整代码)

C++语言实现出李峋同款跳动的爱心的完整代码。

AIGC 10万+

两个单链表连接

链表这一块最复杂的就是换指方面,尾插难度不大,中间插入的话插入结点的步骤理清就好办了。

Jack20010808的博客 1552

【OpenClaw从入门到精通】第02篇:5分钟速通!阿里云/华为云一键部署OpenClaw(附避坑指南·2026实测版)

本文聚焦OpenClaw的云端部署场景,针对本地部署“关机即离线、跨设备访问难”的痛点,详解阿里云(主推)和华为云(备选)的一键部署流程。2026实测验证:阿里云轻量应用服务器通过官方OpenClaw镜像可5分钟完成部署,华为云Flexus L实例需补充SSH配置步骤;文中拆解云端部署核心概念(地域选择、端口放行、成本构成),通过“AI助理定时抓取行业资讯并推送钉钉”的虚拟案例演示云端7×24小时运行价值,同时提供模型调用、服务器成本的精细化控制方案,梳理端口访问失败、API-Key权限异常等高频坑点的解决

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5545

每日程序C语言45-连接两个链表

题目: 连接两个链表 程序分析 可以将后面的链表直接接在第一个链表后面,但是注意,删除第二个链表的头结点再进行删除 主要代码 main.c //创建结点类型 typedef struct Node{ int data; struct Node *next; }Node,*LinkList; //打印链表 void print(LinkList L){ L=L->next; while (L) { printf("%3d",L->data); L=L->next; }

星星的博客 2567

ESP32-C3入门教程 蓝牙篇①——基于Blufi 的 WiFi 智能配网

文章目录一、前言二、WiFi配网方式三、快速运行四、运行效果五、ESP32-C3程序流程5.1 主程序5.2 回调函数5.3 SmartConfig线程5.4 流程图六、关键函数6.1 设置SmartConfig的协议类型6.2 启动SmartConfig6.3 停止SmartConfig七、其他八、参考 一、前言 本文基于VS Code IDE进行编程、编译、下载、运行等操作 基础知识点请查阅:ESP32-C3入门教程 基础篇①——基于VS Code构建Hello World 二、WiFi配网方式 W

7765

MNI152 坐标空间和 fsaverage 坐标空间相互转换, 如已知fsaverage空间的坐标如何求MNI152 坐标?aparc.a2009s.annot转化到MNI152空间?

大多数神经影像学研究的结果是在体积(例如,MNI152)或表面(例如,fsaverage)坐标系中报告的。体积坐标系和表面坐标系之间的准确映射可以促进许多应用,例如将 fMRI 组分析从 MNI152 投影到 fsaverage 以进行可视化或从 fsaverage 投影静息状态 fMRI 分区对 MNI152进行新数据的体积分析。Wu et al., 2018 评估了三种在 MNI152通过模拟上述应用的 Colin27 和 fsaverage 坐标系:将组平均数据从 MNI152/Colin27 投影到

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2966

C语言经典100例(74)连接两个链表

【代码】C语言经典100例(74)连接两个链表。

jlfcc的博客 379

睿抗机器人魔力元宝在完成任务过程中如何使机械臂先到达白色盒子上方而不是先到达工作台?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1378

菜鸟教程-C语言经典100示例(后50)

注:接上篇(菜鸟教程-C语言经典100示例(前50))51,学习使用按位与 &amp;。52,学习使用按位或 |。53,学习使用按位异或 ^。54,取一个整数a从右端开始的4~7位。55,学习使用按位取反~。56,画图,学用circle画圆形。57,画图,学用line画直线(在TC中实现)。58,学用rectangle画方形。(在TC中实现)。59,画图,综合例子。(在TC中实现)。60,画图,综...

zlhcsm的博客 7万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

经典C语言代码——part 19(链表)

题目:反向输出一个链表。题目:创建一个链表。题目:连接两个链表。

2303_81838541的博客 1105

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言经典一百例

经典C语言程序设计100例 1.数字排列    2.奖金分配问题    3.已知条件求解整数    4.输入日期判断第几天 5.输入整数进行排序    6.用*号显示字母C的图案  7.显示特殊图案    8.打印九九口诀 9.输出国际象棋棋盘    10.打印楼梯并按条件打印笑脸   11.经典兔子问题   12.判断素数 13.水仙花数问题   14.正整数分解质因数   15.学习成

xngjing的博客 1万+

经典c语言程序100例(71-80)

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数。题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只。一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,题目:编写input()和output()函数输入,输出5个学生的数据记录。题目:找到年龄最大的人,并输出。1/1+1/3+...+1/n(利用指针函数)题目:放松一下,算一道简单的题目。题目:反向输出一个链表。题目:创建一个链表。

qq_41237850的博客 1029

C语言建立两个有序链表,在不创建新链表的情况下连接两个链表并输出

某个紫色封皮的书的作业。。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define ElementType int //数据域的数据类型,用预定义方便改数据类型的时候替换,这里根据要求用int 4 typedef struct LNode *List; //建立类...

dongchang0182的博客 798

【C语言基础案例】经典C语言程序设计100例附源码解析(71-80例)

本文介绍了C语言程序设计71-80例的部分源码及解析,涵盖多个核心知识点。主要内容包括:结构体应用的学生信息管理系统(例71)、链表创建与反向输出(例72-73)、链表连接操作(例74)、逻辑推理题(例75)以及函数指针应用(例76)。示例程序展示了C语言中结构体、链表、指针、动态内存分配等关键技术的实际应用,帮助读者深入理解这些基础概念并提升编程能力。每个案例都包含完整的源代码和核心知识点分析,适合C语言学习者参考实践。

yuhuasheng1997的博客 548

经典C语言编程100例——题目+答案代码(71-80)

【程序 71】 题目:编写 input()和 output()函数输入,输出 5 个学生的数据记录。 1.程序分析: 2.程序源代码: #define N 5 struct student { char num[6]; char name[8]; int score[4]; } stu[N]; input(stu) struct student stu[]; { int i,j; for(i=0;...

bingocoder的博客 2617

【C语言基础案例目录】经典C语言程序设计100例目录(附100例题目)

《C语言基础案例目录》精选100个经典程序设计案例,分为10个部分(每部分10例),涵盖数字组合、奖金计算、完全平方数等基础算法。案例由浅入深,包含素数判断、水仙花数、斐波那契数列等数学问题,以及递归、绘图、位运算等进阶内容。每个案例提供题目描述和源码解析,适合C语言学习者系统练习编程思维和实战能力。从基础控制结构到复杂算法实现,全面培养程序设计能力。

yuhuasheng1997的博客 1513

C语言学习-菜鸟教程C经典100例-练习74

摘要:本文展示了如何用C语言实现两个链表的连接操作。代码定义了一个链表结构体,包含创建链表、删除节点、选择排序等功能。其中concatenate()函数通过遍历第一个链表找到末尾节点,然后将其next指针指向第二个链表头节点,实现链表连接。主函数演示了创建链表和排序的过程,但未实际调用连接函数。该示例展示了链表的基本操作,可作为学习数据结构的参考。

2301_77670476的博客 43

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

1.我的思路先将b链表连接在a链表的后面,这个很容易实现,将a链表最后的结点中的p.next改为指向b链表的头结点即可。 再将这个新链表用选择排序即可。 代码如下: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 typedef struct stu...

weixin_30532987的博客 789

c语言的双向链表

双向链表,是平常编程用的最多的一个数据结构。 上面实现最关键的就是: 1、抽象出前驱结点与后驱结点的两个概念 2、这两个节点,旧的后驱结点变成前驱结点,新的后驱结点通过malloc进行生成,从而实现链表的结点的增加。 下面是具体实例,测试通过: #include <stdio.h> 2 #include <stdlib.h> 3 4 //定义...

如山石的系统虚拟化之路 676

C 语言实用程序设计100例,经典C语言程序设计100例71-80

【程序71】题目:编写input()和output()函数输入,输出5个学生的数据记录。1.程序分析:2.程序源代码:#define N 5struct student{ char num[6];char name[8];int score[4];} stu[N];input(stu)struct student stu[];{ int i,j;for(i=0;i{ printf(“n pleas...

weixin_29924799的博客 351
上一篇: C语言经典例73-反向输出一个链表
下一篇: C语言经典例75-反转整数
syzdev
博客等级 码龄9年 852粉丝 149原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值