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

数据结构每日一题day17(链表)★★★★★

题目描述:假设有两个按元素值递增次排列的线性表,均以单链表形式存储。请编与算法将这两个单链表归并为一个按元素值依次递减排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。

算法思想:

1.初始化:

创建一个新的头结点(用于结果链表)。

定义指针 p 和 q 分别遍历两个链表。

使用头插法将节点插入结果链表(确保递减顺序)。

2.归并过程:

比较 p 和 q 的当前节点值,选择较大者插入结果链表的头部。

移动对应的指针(p 或 q)到下一个节点。

重复上述步骤,直到其中一个链表遍历完毕。

3.处理剩余节点:

将未遍历完的链表剩余节点依次头插到结果链表中。

4.返回结果:

返回新链表的头结点。

复杂度分析:

时间复杂度:O(n + m),其中 n 和 m 分别是两个链表的长度。需要遍历所有节点。

空间复杂度:O(1),仅使用常数个额外指针变量,复用原节点。

代码实现:

#include <stdio.h>
#include <stdlib.h>typedef struct Node {int data;struct Node *next;
} Node, *LinkedList;// 创建递增链表
LinkedList createList() {LinkedList L = (LinkedList)malloc(sizeof(Node));L->next = NULL;Node *tail = L;int x;printf("输入递增序列(以-1结束):");while (scanf("%d", &x), x != -1) {Node *newNode = (Node *)malloc(sizeof(Node));newNode->data = x;newNode->next = NULL;tail->next = newNode;tail = newNode;}return L;
}// 归并两个递增链表为递减链表
LinkedList mergeDescending(LinkedList La, LinkedList Lb) {LinkedList Lc = (LinkedList)malloc(sizeof(Node)); // 结果链表的头结点Lc->next = NULL;Node *p = La->next; // 遍历 LaNode *q = Lb->next; // 遍历 Lbwhile (p != NULL && q != NULL) {if (p->data <= q->data) {// 头插法插入 pNode *next = p->next;p->next = Lc->next;Lc->next = p;p = next;} else {// 头插法插入 qNode *next = q->next;q->next = Lc->next;Lc->next = q;q = next;}}// 处理剩余节点while (p != NULL) {Node *next = p->next;p->next = Lc->next;Lc->next = p;p = next;}while (q != NULL) {Node *next = q->next;q->next = Lc->next;Lc->next = q;q = next;}// 释放原链表的头结点(可选)free(La);free(Lb);return Lc;
}// 打印链表
void printList(LinkedList L) {Node *p = L->next;while (p != NULL) {printf("%d ", p->data);p = p->next;}printf("\n");
}int main() {printf("创建链表 La:\n");LinkedList La = createList();printf("创建链表 Lb:\n");LinkedList Lb = createList();printf("La: ");printList(La);printf("Lb: ");printList(Lb);LinkedList Lc = mergeDescending(La, Lb);printf("归并后的递减链表 Lc: ");printList(Lc);return 0;
}

相关文章:

数据结构每日一题day17(链表)★★★★★

题目描述&#xff1a;假设有两个按元素值递增次排列的线性表&#xff0c;均以单链表形式存储。请编与算法将这两个单链表归并为一个按元素值依次递减排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。 算法思想&#xff1a; 1.初始化&#xff1a; 创建一个新…...

遗传算法(GA)

基本原理 算法介绍 遗传算法&#xff08;Genetic Algorithm&#xff0c;简称GA&#xff09;是一种基于自然选择和遗传学原理的搜索和优化技术。它模拟了生物进化过程&#xff0c;通过选择、交叉&#xff08;重组&#xff09;和变异等操作&#xff0c;逐步优化问题的解。 遗传…...

EPS三维测图软件

EPS三维测图软件EPS2016...

设计模式-命令模式

写在前面 Hello&#xff0c;我是易元&#xff0c;这篇文章是我学习设计模式时的笔记和心得体会。如果其中有错误&#xff0c;欢迎大家留言指正&#xff01; 一、什么是命令模式&#xff1f; 命令模式是行为模式中的一种&#xff0c;通过将请求封装成对象&#xff0c;使开发者可…...

深入理解主从数据库架构与主从复制

目录 前言1. 主从数据库概述1.1 什么是主从数据库&#xff1f;1.2 主从数据库的应用场景 2. 主从数据库的工作原理2.1 主从数据库的读写分离2.2 数据同步机制2.3 异步与同步复制模式 3. 主从复制的实现步骤3.1 配置主库3.2 配置从库 4. 主从数据库架构的优缺点4.1 优点4.2 缺点…...

【C】初阶数据结构15 -- 计数排序与稳定性分析

本文主要讲解七大排序算法之外的另一种排序算法 -- 计数排序 目录 1 计数排序 1&#xff09; 算法思想 2&#xff09; 代码 3&#xff09; 时间复杂度与空间复杂度分析 &#xff08;1&#xff09; 时间复杂度 &#xff08;2&#xff09; 空间复杂度 4&#xff09; 计…...

@PostConstruct @PreDestroy

PostConstruct 是 Java EE&#xff08;现 Jakarta EE&#xff09;中的一个注解&#xff0c;用于标记一个方法在对象初始化完成后立即执行。它在 Spring 框架、Java Web 应用等场景中广泛使用&#xff0c;主要用于资源初始化、依赖注入完成后的配置等操作。 1. 基本作用 执行时…...

2025数维杯数学建模A题完整限量论文:空中芭蕾——蹦床运动的力学行为分析

2025数维杯数学建模A题完整限量论文&#xff1a;空中芭蕾——蹦床运动的力学行为分析 &#xff0c;先到先得 A题完整论文https://www.jdmm.cc/file/2712067/ 蹦床&#xff08; Trampoline &#xff09;是一项运动员利用蹦床的反弹&#xff0c;在空中展示技能 技巧的竞技运动&…...

Kubernetes Gateway API 部署详解:从入门到实战

引言 在 Kubernetes 中管理网络流量一直是一个复杂而关键的任务。传统的 Ingress API 虽然广泛使用,但其功能有限且扩展性不足。Kubernetes Gateway API 作为新一代标准,提供了更强大的路由控制能力,支持多协议、跨命名空间路由和细粒度的流量管理。本文将带你从零开始部署…...

移动设备常用电子屏幕类型对比

概述 LCD 家族 &#xff08;TN、STN、TFT、IPS、VA&#xff09;依赖背光&#xff0c;性能差异主要来自液晶排列和驱动方式。OLED 以自发光为核心优势&#xff0c;但成本与寿命限制其普及。E-Paper 专为低功耗静态显示设计&#xff0c;与传统屏幕技术差异显著。 参数LCD&#…...

HarmonyOS开发-组件市场

1. HarmonyOS开发-组件市场 HarmonyOS NEXT开源组件市场是一个独立的插件&#xff0c;需通过DevEco Studio进行安装&#xff0c;可以点击下载&#xff0c;无需解压&#xff0c;直接通过zip进行安装&#xff0c;具体安装和使用方法可参考HarmonyOsNEXT组件市场使用说明。Harmony…...

效果图云渲染:价格、优势与使用技巧

对于做3D设计来说&#xff0c;渲染效果图会占用设计电脑的资源&#xff0c;如果能免去这个环节就好了。用设计电脑渲不仅拖慢电脑速度&#xff0c;遇到紧急情况无法快速渲染出来还可能耽误进度。而云渲染的出现&#xff0c;正是针对这个点——渲的快&#xff0c;价格便宜&#…...

OptiStruct实例:声振耦合超单元应用

如图10-11所示&#xff0c;本例采用一个简化的整车模型&#xff0c;模型分为车身&#xff08;含声腔&#xff09;与底盘两部分。首先分别运用CMS与CDS方法对车身&#xff08;含声腔&#xff09;模型进行缩聚&#xff0c;生成.h3d格式的CMS超单元和cps超单元&#xff0c;然后进行…...

排序算法-插入排序

插入排序是一种简单直观的排序算法&#xff0c;其核心思想是将未排序部分的元素逐个插入到已排序部分的正确位置&#xff0c;类似于整理扑克牌。 插入排序步骤 初始化&#xff1a;将序列的第一个元素视为已排序部分&#xff0c;其余为未排序部分。 选择元素&#xff1a;从未排…...

Uniapp Android/IOS 获取手机通讯录

介绍 最近忙着开发支付宝小程序和app&#xff0c;下面给大家介绍一下 app 获取通讯录的全部过程吧&#xff0c;也是这也是我app开发中的一项需求吧。 效果图如下 勾选配置文件 使用uniapp开发的童鞋都知道有一个配置文件 manifest.json 简单的说一下&#xff0c;就是安卓/ios/…...

【RAG】index环节中 关于嵌入模型和 ColBERT

1. 什么是嵌入模型&#xff1f;是不是把数据源转换为向量表示的模型&#xff1f; 是的&#xff0c;嵌入模型&#xff08;Embedding Model&#xff09;的核心功能就是将各种类型的数据&#xff08;例如&#xff0c;文本、图像、音频等&#xff09;转换成低维、稠密的向量表示。…...

一文掌握 LVGL 9 的源码目录结构

文章目录 &#x1f4c2; 一文掌握 LVGL 9 的源码目录结构&#x1f9ed; 顶层目录概览&#x1f4c1; 1. src/ — LVGL 的核心源码&#xff08;&#x1f525;重点&#xff09;&#x1f4c1; 2. examples/ — API 示例&#x1f4c1; 3. demos/ — 综合演示项目&#x1f4c1; 4. do…...

ROS1 和 ROS2 在同一个系统中使用

一、环境变量设置 echo "ros noetic(1) or ros2 foxy(2)?" read edition if [ "$edition" -eq "1" ]; thensource /opt/ros/noetic/setup.bash elsesource /opt/ros/foxy/setup.bash fi 二、针对不同的ROS版本创建不同的工作空间work space...

Redis 8.0携新功能,重新开源

01 引言 Redis从7.4版本起&#xff0c;将开源许可证改成 RSALv2&#xff08;Redis 源代码可用许可证&#xff09;与 SSPLv1&#xff08;服务器端公共许可证&#xff09;的双重授权策略。简单来说&#xff0c;就是不能随意商用。为了抵制Redis&#xff0c;Redis的替代品Valkey、…...

AD原理图复制较多元器件时报错:“InvalidParameter Exception Occurred In Copy”

一、问题描述 AD原理图复制较多元器件时报错&#xff1a;AD原理图复制较多元器件时报错&#xff1a;“InvalidParameter Exception Occurred In Copy”。如下图 二、问题分析 破解BUG。 三、解决方案 1、打开参数配置 2、打开原理图优先项中的通用配置&#xff0c;取消勾选G…...

【wpf】12 在WPF中实现HTTP通信:封装HttpClient的最佳实践

一、背景介绍 在现代桌面应用开发中&#xff0c;网络通信是不可或缺的能力。WPF作为.NET平台下的桌面开发框架&#xff0c;可通过HttpClient轻松实现与后端API的交互。本文将以一个实际的HttpsMessages工具类为例&#xff0c;讲解如何在WPF中安全高效地封装HTTP通信模块。 二、…...

从概念表达到安全验证:智能驾驶功能迎来系统性规范

随着辅助驾驶事故频发&#xff0c;监管机制正在迅速补位。面对能力表达、使用责任、功能部署等方面的新要求&#xff0c;行业开始重估技术边界与验证能力&#xff0c;数字样机正成为企业合规落地的重要抓手。 2025年以来&#xff0c;围绕智能驾驶功能的争议不断升级。多起因辅…...

金贝灯光儿童摄影3大布光方案,解锁专业级童趣写真

随着亲子消费的持续升温&#xff0c;儿童摄影行业对高效、专业、灵活的专业灯光需求日益迫切。为精准解决儿童拍摄中孩子好动难配合、氛围单调、出片效率低下等痛点&#xff0c;深耕影像光源行业三十年&#xff0c;拥有丰富的商业人像摄影灯光解决方案的金贝品牌&#xff0c;近…...

双端口ram与真双端口ram的区别

端口独立性 真双端口RAM&#xff1a;拥有两个完全独立的读写端口&#xff08;Port A和Port B&#xff09;&#xff0c;每个端口都有自己的地址总线、数据总线、时钟、使能信号和写使能信号。这意味着两个端口可以同时进行读写操作&#xff0c;且互不干扰。 伪双端口RAM&…...

Java设计模式之单例模式:从入门到精通

一、单例模式概述 1.1 什么是单例模式 定义:单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。 专业解释:单例模式通过限制类的实例化过程,保证在整个应用程序生命周期中,某个类最多只有一个实例存在,…...

sqli-labs靶场18-22关(http头)

目录 less18&#xff08;user-agent&#xff09; less19&#xff08;referer&#xff09; less20&#xff08;cookie&#xff09; less21&#xff08;cookie&#xff09; less22&#xff08;cookie&#xff09; less18&#xff08;user-agent&#xff09; 这里尝试了多次…...

【图像大模型】Stable Diffusion Web UI:深度解析与实战指南

Stable Diffusion Web UI&#xff1a;深度解析与实战指南 一、项目概述核心功能 二、项目运行方式与执行步骤1. 环境准备2. 安装步骤在Windows上安装在Linux上安装 3. 使用Web UI 三、执行报错及问题解决方法1. Python版本不兼容2. CUDA未正确安装3. 依赖库安装失败4. 内存不足…...

Linux 学习笔记1

Linux 学习笔记1 一、用户和用户组管理用户组操作用户操作 二、文件权限管理权限查看权限修改归属权修改 三、系统快捷操作四、软件管理包管理工具服务管理 五、文件系统操作软链接 六、时间管理七、网络管理基础命令端口与进程进程管理 八、环境变量基础操作 九、其他重要概念…...

单例模式的两种设计

单例模式确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 1. 饿汉模式 (Eager Initialization) 饿汉模式在程序启动时就创建实例&#xff0c;线程安全。 cpp class EagerSingleton { public:// 删除拷贝构造函数和赋值运算符EagerSingleton(const EagerSingleton…...

【HarmonyOS NEXT+AI】问答05:ArkTS和仓颉编程语言怎么选?

在“HarmonyOS NEXTAI大模型打造智能助手APP(仓颉版)”课程里面&#xff0c;有学员提到了这样一个问题&#xff1a; 鸿蒙的主推开发语言不是ArkTS吗&#xff0c;本课程为什么使用的是仓颉编程语言&#xff1f; 这里就这位同学的问题&#xff0c;统一做下回复&#xff0c;以方便…...

20250509 相对论中的\*\*“无空间”并非真实意义上的虚无,而是时空结构尚未形成\*\*的状态。 仔细解释下这个

相对论中的**“无空间”并非真实意义上的虚无&#xff0c;而是时空结构尚未形成**的状态。 仔细解释下这个 相对论中的“无空间”这一概念&#xff0c;严格来说并非绝对的虚无&#xff0c;而是指在物理学上时空结构尚未形成或无法定义的状态。这种状态通常出现在宇宙起源和黑洞…...

T-SQL在SQL Server中判断表、字段、索引、视图、触发器、Synonym等是否存在

SQL Server创建或者删除表、字段、索引、视图、触发器前判断是否存在。 目录 1. SQL Server创建表之前判断表是否存在 2. SQL Server新增字段之前判断是否存在 3. SQL Server删除字段之前判断是否存在 4. SQL Server新增索引之前判断是否存在 5. SQL Server判断视图是否存…...

C——数组和函数实践:扫雷

此篇博客介绍用C语言写一个扫雷小游戏&#xff0c;所需要用到的知识有&#xff1a;函数、数组、选择结构、循环结构语句等。 所使用的编译器为:VS2022。 一、扫雷游戏是什么样的&#xff0c;如何玩扫雷游戏&#xff1f; 如图&#xff0c;是一个标准的扫雷游戏初始阶段。由此…...

Java中的分布式缓存与Memcached集成实战

一、概述 分布式缓存是提升系统性能和扩展性的关键技术之一。Memcached作为一种高性能的分布式内存对象缓存系统&#xff0c;在许多场景下被广泛使用。本文将深入探讨如何在Java项目中集成Memcached&#xff0c;实现高效的分布式缓存。 二、Memcached简介 Memcached是一种高…...

OpenCV播放摄像头视频

OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 播放摄像头视频和播放视频文件类似&#xff0c;也是通过类VideoCapture来实现&#xff0c;只不过调用open的时候传入的是摄像头的索引号。如果计算机安装了一个摄像头&#xff0c;则open的第一个参数通常是0&…...

[计算机科学#13]:算法

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a; 算法是解决问题的系统化步骤&#xff0c;不同的问题…...

git相关

1.将 dev 变基到 origin/master git rebase 是一个本地操作&#xff0c;它只会修改你当前所在分支的提交历史&#xff0c;而不会直接影响远程仓库或任何其他分支。 保持提交历史的线性和整洁&#xff1a; 这是 git rebase 最主要的目的。 想象一下 dev 分支是从 master 分支分…...

Web端项目系统访问页面很慢,后台数据返回很快,网络也没问题,是什么导致的呢?

Web端访问缓慢问题诊断指南(测试工程师专项版) ——从浏览器渲染到网络层的全链路排查方案 一、问题定位黄金法则(前端性能四象限) 1. [网络层] 数据返回快 ≠ 资源加载快(检查Content Download时间) 2. [渲染层] DOM复杂度与浏览器重绘(查看FPS指标) 3. [执行层…...

计算机系统结构-第九章-互联网络 第十章

目录 恒等函数&#xff1a;I&#xff08;没变&#xff09; 交换函数&#xff1a;某一位取反 如下 角标为0&#xff0c;第0位取反 均匀洗牌函数、混洗函数Shuffle &#xff1a;σ 左移一位 &#xff08;左移右边补0&#xff0c;右移左边补0&#xff09; 蝶式互连函数but…...

H5 移动端适配最佳实践落地指南。

文章目录 前言一、为什么需要移动端适配&#xff1f;二、核心适配方案1. 视口&#xff08;Viewport&#xff09;设置2. 三种适配方案 &#xff08;仅供参考&#xff09;&#xff08;1&#xff09;rem 适配方案&#xff08;2&#xff09;vw/vh 适配方案&#xff08;3&#xff09…...

从电动化到智能化,法雷奥“猛攻”中国汽车市场

当前&#xff0c;全球汽车产业正在经历前所未有的变革&#xff0c;外资Tier1巨头开始向中国智能电动汽车市场发起新一轮“猛攻”。 在4月23日-5月2日上海国际车展期间&#xff0c;博世、采埃孚、大陆集团、法雷奥等全球百强零部件厂商纷纷发布战略新品与转型计划。在这其中&am…...

智能网联汽车 “中央计算” 博弈:RTOS 与跨域融合的算力分配挑战

一、引言 随着智能驾驶技术的飞速发展&#xff0c;汽车逐渐从传统的交通工具演变为移动的智能终端。智能网联汽车的核心竞争力日益体现在其强大的计算能力和高效的算力管理上。汽车电子电气架构&#xff08;EEA&#xff09;正经历从分布式架构向 “中央计算 区域控制” 架构的…...

springboot 加载 tomcat 源码追踪

加载 TomcatServletWebServerFactory 从 SpringApplication.run(&#xff09;方法进入 进入到 refresh () 方法 选择实现类 ServletWebServerApplicationContext 进入到 AbstractApplicationContext onRefresh() 方法创建容器 找到加载bean 得到 webServer 实例 点击 get…...

AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月9日第72弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀6-8个和值&#xff0c;可以做到100-300注左右。 (1)定…...

企业高性能WEB服务器—Nginx

Nginx介绍 Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。 具有高并发&#xff08;特别是静态资源&#xff09;、占用系统资源少的特性。它不仅是Web服务软件&#xff0c;还具有反向代理负载均衡功能和缓存服务功能 具备如下基本特性 可针对静态资…...

neo4j图数据库基本概念和向量使用

一.节点 1.新建节点 create (n:GroupProduct {name:都邦高保额团意险,description: "保险产品名称"} ) return n CREATE&#xff1a;Neo4j 的关键字&#xff0c;用于创建新节点或关系。 (n:GroupProduct)&#xff1a; n 是节点的临时别名&#xff08;变量名&#…...

安全核查基线-3.用户umask设置策略

在Linux中&#xff0c;umask&#xff08;用户文件创建掩码&#xff09;是一个重要的权限管理机制&#xff0c;用于控制新创建的文件和目录的默认权限。umask的值决定了文件或目录的初始权限中哪些权限位会被屏蔽&#xff08;即不可用&#xff09;。 1. umask 的作用 文件默认权…...

UE像素流是什么

UE像素流是什么 UE像素流送是一种云渲染技术&#xff0c;由虚幻引擎&#xff08;UE&#xff09;提出&#xff0c;用于在浏览器中运行高画质3D应用或游戏。其原理是在远程计算机&#xff08;可以是云端服务器或本地高性能服务器&#xff09;上运行UE开发的应用程序&#xff0c;…...

【C】初阶数据结构14 -- 归并排序

本篇文章主要是讲解经典的排序算法 -- 归并排序 目录 1 递归版本的归并排序 1&#xff09; 算法思想 2&#xff09; 代码 3&#xff09; 时间复杂度与空间复杂度分析 &#xff08;1&#xff09; 时间复杂度 &#xff08;2&#xff09; 空间复杂度 2 迭代版本的归并…...

02_线性模型(回归线性模型)

描述 线性模型是在实践中广泛使用的一类模型&#xff0c;线性模型利用输入特征的线性函数&#xff08;linear function&#xff09;进行预测。 用于回归的线性模型 对于回归问题&#xff0c;线性模型预测的一般公式如下&#xff1a; $ \widehat y w[0]*x[0]w[1]*x[1]…w[p…...