当前位置: 首页 > news >正文

数据结构:实验题目:单链表归并。将两个非递减次序排列的单链表归并为一个非递增次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放合并后的单链表。

输出样例如图:

代码如下:

#include<stdio.h>#include<stdlib.h>//链表节点结构
typedefstructListNode{intval;structListNode*next;
} ListNode;// 创建新节点
ListNode* createNode(int val){ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));newNode->val = val;newNode->next = NULL;return newNode;}// 插入节点到链表尾部
void insertTail(ListNode** head, int val){ListNode* newNode = createNode(val);if (*head == NULL){*head = newNode;}else{ListNode* temp = *head;while (temp->next != NULL){temp = temp->next;}temp->next = newNode;}}// 释放链表内存
void freeList(ListNode* head){ListNode* temp;while (head != NULL){temp = head;head = head->next;free(temp);}}// 合并两个非递减链表为非递增链表
ListNode* mergeLists(ListNode* list1, ListNode* list2){ListNode* result = NULL;while (list1 != NULL || list2 != NULL){ListNode* temp;if (list1 == NULL){temp = list2;list2 = list2->next;}else if (list2 == NULL){temp = list1;list1 = list1->next;}else if (list1->val < list2->val){temp = list1;list1 = list1->next;}else{temp = list2;list2 = list2->next;}temp->next = result;result = temp;}return result;}// 计算链表长度
int listLength(ListNode* head){int len = 0;while (head != NULL){len++;head = head->next;}return len;}int main(){printf_s("230602207 侯冬明\n");ListNode* list1 = NULL;ListNode* list2 = NULL;int num;// 输入第一个链表
printf_s("输入第一个非递减单链表,以-1 结束输入:\n");while (scanf_s("%d", &num) && num !=-1){insertTail(&list1, num);}// 输入第二个链表
printf_s("输入第二个非递减单链表,以-1 结束输入:\n");while (scanf_s("%d", &num) && num !=-1){insertTail(&list2, num);}ListNode* mergedList = mergeLists(list1, list2);int length = listLength(mergedList);printf_s("合并后的非递增单链表为:");ListNode* temp = mergedList;while (temp != NULL){printf("%d ", temp->val);temp = temp->next;}printf_s("\n 合并后的单链表长度为:%d\n", length);freeList(list1);freeList(list2);freeList(mergedList);return 0;}

 

觉得有帮助就给博主点个关注叭~~

有问题的可以私信或者在评论区一起交流

友友们一起加油叭QAQ

相关文章:

数据结构:实验题目:单链表归并。将两个非递减次序排列的单链表归并为一个非递增次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放合并后的单链表。

输出样例如图&#xff1a; 代码如下&#xff1a; #include<stdio.h>#include<stdlib.h>//链表节点结构 typedefstructListNode{intval;structListNode*next; } ListNode;// 创建新节点 ListNode* createNode(int val){ListNode* newNode (ListNode*)malloc(sizeo…...

请求go构建缓存,go clean -cache

go clean -cache go 构建时会产生很多缓存&#xff0c; 一般是目录&#xff1a;/Users/xxx/Library/Caches/go-build 此目录README&#xff1a; This directory holds cached build artifacts from the Go build system. Run "go clean -cache" if the directory …...

Windows和Linux下,通过C++实现获取蓝牙版本号

在 C 中获取蓝牙版本号&#xff0c;不同的操作系统有不同的实现方式&#xff0c;下面分别介绍在 Windows 和 Linux 系统下的实现方法。 Windows 系统 在 Windows 系统中&#xff0c;可以使用 Windows API 来与蓝牙设备交互&#xff0c;获取蓝牙版本号。以下是一个示例代码&…...

【网络】如何划分子网、计算子网掩码、确定网络地址、广播地址和可用主机地址范围?

当然&#xff01;让我们一步一步详细介绍如何划分子网、计算子网掩码、确定网络地址、广播地址和可用主机地址范围。假设我们从一个 10.0.0.0/24 的网络开始&#xff0c;并且需要为每个子网提供 50 个主机地址。 问题概述&#xff1a; 我们有一个网络 10.0.0.0/24。我们希望为…...

内核数据结构用法(2)list

list 在 Linux 内核中&#xff0c;链表操作是通过一组宏和函数来实现的&#xff0c;这些操作通常用来管理和遍历链表。以下是一些常用的链表函数和宏的具体用法。 1. 定义链表节点 首先&#xff0c;你需要定义一个包含 struct list_head 的结构体&#xff1a; #include <…...

【数据分析】2.数据分析业务全流程

业务流程方法论&#xff1a;3阶段6步骤 一、课程核心内容结构 1. 方法论概述 目标&#xff1a;系统性地解决商业中的关键问题框架&#xff1a;分为三个阶段&#xff0c;每个阶段包含两个步骤适用场景&#xff1a;适用于数据分析师、业务经理等需要通过数据分析支持决策的从业…...

第三十章 V - W 开头的术语

文章目录 第三十章 V - W 开头的术语视图 (view)虚拟字段 (virtual field)虚拟表 (virtual table) 以 W 开头的术语观察点 (watchpoint)Web 应用程序 (web application)工作集 (working set)写入镜像日志记录 (write image journaling) 以 X 开头的术语XData 第三十章 V - W 开…...

模拟实现Java中的计时器

定时器是什么 定时器也是软件开发中的⼀个重要组件. 类似于⼀个 "闹钟". 达到⼀个设定的时间之后, 就执⾏某个指定好的代码. 前端/后端中都会用到计时器. 定时器是⼀种实际开发中⾮常常⽤的组件. ⽐如⽹络通信中, 如果对⽅ 500ms 内没有返回数据, 则断开连接尝试重…...

Eclipse2024中文汉化教程(图文版)

对应Eclipse,部分人需要中文汉化,本章教程,介绍如何对Eclipse进行汉化的具体步骤。 一、汉化前的Eclipse 默认安装Eclipse的时候,默认一般都是English的,我当前版本是使用的是2024-06版本的Eclipse。 二、汉化详细步骤 点击上方菜单选项卡,Hep——Install New Software……...

【回溯算法2】

力扣17.电话号码的字母组合 链接: link 思路 这道题容易想到用嵌套的for循环实现&#xff0c;但是如果输入的数字变多&#xff0c;嵌套的for循环也会变长&#xff0c;所以暴力破解的方法不合适。 可以定义一个map将数字和字母对应&#xff0c;这样就可以获得数字字母的映射了…...

21.《SpringBoot 异步编程@Async与CompletableFuture》

SpringBoot 异步编程 文章导读 本文系统讲解 Spring Boot 异步编程的核心技术与实践方案&#xff0c;涵盖从基础使用到高级优化的全链路知识。通过深入剖析 Async 注解原理、线程池配置策略、异步异常处理机制等关键技术点&#xff0c;结合典型业务场景的代码示例&#xff0c…...

激光雷达YDLIDAR X2 SDK安装

激光雷达YDLIDAR X2 SDK安装 陈拓 2024/12/15-2024/12/19 1. 简介 YDLIDAR X2官方网址https://ydlidar.cn/index.html‌YDLIDAR X2 YDLIDAR X2是一款高性能的激光雷达传感器&#xff0c;具有以下主要特点和规格参数‌&#xff1a; ‌测距频率‌&#xff1a;3000Hz ‌扫描频…...

大模型在肝硬化风险预测及临床决策中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、肝硬化及大模型相关理论基础 2.1 肝硬化概述 2.2 大模型技术原理 2.3 大模型在医疗领域的应用现状 三、大模型预测肝硬化术前风险 3.1 术前风险因素分析 3.2 大模型预测术前风险…...

计算机毕业设计SpringBoot+Vue.js母婴商城(源码+LW文档+PPT+讲解+开题报告)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Java多线程三:补充知识

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Lambda表达式 简介&#xff1a; 希腊字母表中排序第十一位的字母&#xff0c;英语名称为Lambda避免匿名内部类定义过多其实质属于函数式编程的概念 为什么要使用lam…...

计算机网络————(一)HTTP讲解

基础内容分类 从TCP/IP协议栈为依托&#xff0c;由上至下、从应用层到基础设施介绍协议。 1.应用层&#xff1a; HTTP/1.1 Websocket HTTP/2.0 2.应用层的安全基础设施 LTS/SSL 3.传输层 TCP 4.网络层及数据链路层 IP层和以太网 HTTP协议 网络页面形成基本 流程&#xff1a…...

stream流常用方法

1.reduce 在Java中&#xff0c;可以使用Stream API的reduce方法来计算一个整数列表的乘积。reduce方法是一种累积操作&#xff0c;它可以将流中的元素组合起来&#xff0c;返回单个结果。对于计算乘积&#xff0c;你需要提供一个初始值&#xff08;通常是1&#xff0c;因为乘法…...

最新扣子(Coze)案例教程:全自动DeepSeek 写影评+批量生成 + 发布飞书,提效10 倍!手把手教学,完全免费教程

&#x1f468;‍&#x1f4bb;群里有同学是做影视赛道的博主&#xff0c;听说最近DeepSeek这么火&#xff0c;咨询能不能用DeepSeek写影评&#xff0c;并整理电影数据资料&#xff0c;自动发布到飞书文档&#xff0c;把每天的工作做成一个自动化的流程。 那今天斜杠君就为大家…...

数据结构:动态数组vector

vector 是 C 标准库的动态数组。 在C语言中一般初学者会使用malloc&#xff0c;int[n]等方式来创建静态数组&#xff0c;但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector&#xff0c; 并且在刷题网站的题目给的输入一般也是vector类型。 示例&#xff1a;vect…...

【HeadFirst系列之HeadFirst设计模式】第9天之模板方法模式:从咖啡和茶到Spring框架,掌握设计模式的精髓

模板方法模式&#xff1a;从咖啡和茶到Spring框架&#xff0c;掌握设计模式的精髓 《Head First 设计模式》是一本经典的设计模式入门书籍&#xff0c;它以轻松幽默的方式讲解了设计模式的核心思想。其中&#xff0c;模板方法模式是一个非常简单但非常实用的设计模式&#xff…...

录播姬全攻略:3分钟上手,24小时守护你心爱的直播内容

录播姬全攻略&#xff1a;3分钟上手&#xff0c;24小时守护你心爱的直播内容 【免费下载链接】BililiveRecorder 录播姬 | mikufans 生放送录制 项目地址: https://gitcode.com/gh_mirrors/bi/BililiveRecorder 你是否曾经因为错过心爱主播的直播而遗憾&#xff1f;或者…...

VisionMaster多相机定位实战:手把手教你搞定800mm大物料抓取(附完整标定流程)

VisionMaster多相机定位实战&#xff1a;800mm大物料抓取全流程解析 在工业自动化领域&#xff0c;大尺寸物料的高精度定位一直是视觉工程师面临的棘手挑战。当物料尺寸超过单相机视野范围时&#xff0c;如何实现毫米级定位精度&#xff1f;本文将基于800600mm面板物料抓取场景…...

EF Core 10向量搜索扩展——微软Ignite 2024闭门技术简报首次披露的3个即将弃用API及平滑迁移路径(限首批读者获取)

第一章&#xff1a;EF Core 10向量搜索扩展概览与演进脉络EF Core 10正式将向量搜索能力纳入官方扩展体系&#xff0c;标志着ORM框架首次原生支持语义检索场景。该能力并非简单封装底层向量数据库API&#xff0c;而是通过统一的LINQ抽象层&#xff0c;将向量相似度计算&#xf…...

Windows PDF处理终极指南:零依赖的完整解决方案

Windows PDF处理终极指南&#xff1a;零依赖的完整解决方案 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows系统上复杂的PDF处理工具…...

视频转PPT神器:3步实现智能提取,效率提升10倍的自动化方案

视频转PPT神器&#xff1a;3步实现智能提取&#xff0c;效率提升10倍的自动化方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习与工作的时代&#xff0c;视频已成为知…...

告别重复操作:MAA明日方舟助手的智能自动化革命

告别重复操作&#xff1a;MAA明日方舟助手的智能自动化革命 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.c…...

解锁SketchUp 3D打印新维度:深度探索STL插件技术指南

解锁SketchUp 3D打印新维度&#xff1a;深度探索STL插件技术指南 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 你是否曾在S…...

3步搞定百度网盘提取码:baidupankey智能工具的极速使用指南

3步搞定百度网盘提取码&#xff1a;baidupankey智能工具的极速使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗&#xff1f;每次看到心仪的学习资料、软件资源或影音文件&…...

Late:本地优先的编程智能体

如果能在 5GB 显存上使用本地 Qwen3.5-35B-A3B 编排代码库&#xff08;通过 llama.cpp 达到约 25-30 tokens/sec&#xff0c;65k 上下文&#xff0c;其余层卸载到系统内存&#xff09;&#xff0c;你觉得如何&#xff1f; 更妙的是&#xff0c;两个并行的 agent 实例可以舒适地…...

蒙古人当年 是 如何控制 莫斯科的

蒙古人当年控制莫斯科&#xff0c;靠的绝不是简单的驻军镇压&#xff0c;而是一套极其冷酷、高效且深谙人性的**“寄生式统治系统”**。 这正是我们在前面聊到的、把莫斯科的“第一人格”杀死&#xff0c;并逼出其“黑暗第二人格”的那个具体过程。蒙古人&#xff08;金帐汗国&…...