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

链表指定节点的插入

 向现有链表中插入结点,根据插入位置的不同,可分为以下 3 种情况:

  1. 插入到链表的头部,作为新的链表中第一个存有数据的结点(又称为”首元结点”);
  2. 插入到链表中某两个结点之间的位置;
  3. 插入到链表的最末端的位置;

使用头插法和尾插法可分别解决第 1 和第 3 种情况,但是无法解决第 2 种情况,所以本节给大家一段通用代码,可有效解决所有链表结点插入的问题。(分为节点前和节点后)

节点后插入

节点后插入分为以下几个步骤:

1.通过查找代码找到指定节点;

2.定义一个新节点,将指定节点的下一个节点地址赋给新节点

3.将新节点地址赋给指定节点的下一个节点

定义一个查找函数

int searchLink(struct Test *head,int Data)
{while(head != NULL){if(head->Data == Data)//输入的节点值刚好等于链表节点值{return 1;}head = head->next;}return 0;
}

定义一个节点后插入函数

int insertFronBehind(struct Test *head,int Data,struct Test *new)
{struct Test *p = head;while(p != NULL){if(p->Data == Data){new->next = p->next;//指定节点的下一个节点地址赋给新节点p->next = new;//将新节点地址赋给指定节点的下一个节点return 1;}p=p->next;}return 0;
}

主函数中创建一个新节点并调用以上两个函数

        struct Test new={99,NULL};printLink(&t1);puts("after insert behind");insertFronBehind(&t1,3,&new);printLink(&t1);

这里是在原链表第三个节点处插入一个99,编译结果如下


节点前插入

节点前插入分为以下两种情况:

第一种是链表头插入,则链表头插入的地址改变了整个链表的地址,所以链表头插入的地址可以作为整个链表首地址,同时往下延申即可,就可以得到链表中的所有数据;

第二种是链表中插入,链表中插入的步骤是:

1.若p节点的下一个节点数据等于要插入的节点数据,则将插入的节点地址赋给新节点

2.将p节点地址赋新节点

定义一个查找函数

int searchLink(struct Test *head,int Data)
{while(head != NULL){if(head->Data == Data)//输入的节点值刚好等于链表节点值{return 1;}head = head->next;}return 0;
}

定义一个节点前插入函数(分两种情况)

struct Test* insertFromfor(struct Test *head,int Data,struct Test *new)
{struct Test *p = head;if(p->Data == Data)//p的地址刚好的输入的地址,即链表头插入{new->next = head;return new;}while(p->next != NULL)//p的下一个不为空指针,如果为空指针就跳出循环,判断是不是在链表头{if(p->next->Data == Data)//p的下一个节点数据等于插入节点数据{new->next=p->next;//p下一个节点地址给新节点p->next=new;//新节点地址给pprintf("Insert ok\n");return head;}p=p->next;}printf("No this data%d\n",Data);return head;
}

主函数创建一个新节点调用上面两个函数

        struct Test new1={111,NULL};struct Test *head=NULL;head = &t1;//若为链表头,则需要作为链表首地址;若不为链表头,就从t1正常输出printLink(head);head=insertFromfor(head,3,&new);printLink(head);

这里是在3前面插入一个111,编译结果如下:

相关文章:

链表指定节点的插入

向现有链表中插入结点,根据插入位置的不同,可分为以下 3 种情况: 插入到链表的头部,作为新的链表中第一个存有数据的结点(又称为”首元结点”);插入到链表中某两个结点之间的位置;插…...

解决问题Conda:CondaValueError: Malformed version string ‘~’ : invalid character(s)

解决问题Conda:CondaValueError: Malformed version string ‘~’ : invalid character(s) 背景 今天使用Conda构建项目运行环境的时候报错::CondaValueError: Malformed version string ‘~’ : invalid character(s) ##报错问题 在安装te…...

Sci Immunol丨Tim-3 适配器蛋白 Bat3 是耐受性树突状细胞

今天和大家分享一篇发表于2022年3月的文章,题目为“Tim-3 adapter protein Bat3 acts as an endogenous regulator of tolerogenic dendritic cell function”,发表在《Sci Immunol》杂志上。文章主要研究了Tim-3和其适配蛋白Bat3在调节免疫应答中的作用…...

天软特色因子看板(2023.10 第14期)

该因子看板跟踪天软特色因子A05005(近一月单笔流通金额占比(%),该因子为近一个月单笔流通金额占比因子,用以刻画股票在收盘时,主力资金在总交易金额中所占的比重。 今日为该因子跟踪第14期,跟踪其在SW801160 (申万公用事业) 中的表…...

Photoshop(PS)2021版 安装教程(图文教程超详细)

软件:PS版本:2021语言:简体中文大小:2.26G安装环境:Win11/Win10(1809以上版本)硬件要求:CPU2.0GHz 内存4G(或更高,不支持7代以下CPU)下载通道①百度网盘丨64位…...

详解React:Props构建可复用UI的基石

React是一种流行的JavaScript库,用于构建用户界面。它的组件化架构使得开发人员能够轻松地构建可复用的UI元素,从而提高开发效率。在本文中,我们将探讨React中的组件和Props的重要性,以及如何利用它们来构建可复用的UI。 引言 在…...

【Unity】【VR开发疑难】Unity运行就报无法启动XR Plugin

【现象】 连接Link后运行Unity的VR项目Link也无反映,Unity控制台报:无法启动XR Plugin,并说是由于Oculus头盔未连接导致。 【分析】 打开Oculus PC客户端,发现状态是连接正常。重启机器后,提示Oculus没有出于RunTim…...

本地启动Elasticsearch(docker启动)

一、es版本7.17.0 docker run -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.17.0进入容器,修改/usr/share/elasticsearch/config/elasticsearch.yml 添加如…...

JVM修炼印记之初识

文章目录 JVM认识JVM的功能常见JVMHotSpot的发展历程 JVM认识 Java虚拟机(Java Virtual Machine,JVM)是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心,可以在不同的操作系统和硬件平台上运行Java程序。 JVM负责将Java…...

开关电源老化试验和性能检测系统软件

开关电源自动测试系统由PC(工控机)、测试工装、可编程直流电源、数字示波器、可编程直流电子负载、继电器模块等部分组成,并通过RS232/LAN通讯总线、测试夹具以及其它线缆等进行连接,为系统组成结构。PC与可编程直流电源、数字示波器、可编程直流电子负载…...

水库大坝可视化智能远程监管方案,助力安全监测智能巡检

一、背景需求 水库大坝作为防洪度汛的重要设施,其安全问题直接关系到人民群众的生命财产安全。因此,必须加强对大坝水库的安全管理,对水库除险加固和运行管护要消除存量隐患,实现常态化管理,同时要配套完善重点小型水…...

C#学习系列之虚方法和多态

C#学习系列之虚方法和多态 啰嗦设计原则(六大类其中之一)基类的引用使用 共性与差异虚方法和多态的武器使用 其他总结 啰嗦 基础学习。 设计原则(六大类其中之一) **依赖倒置原则:**依赖抽象类,不依赖具体…...

面试算法44:二叉树中每层的最大值

题目 输入一棵二叉树,请找出二叉树中每层的最大值。例如,输入图7.4中的二叉树,返回各层节点的最大值[3,4,9]。 分析:用一个队列实现二叉树的广度优先搜索 由于要找出二叉树中每层的最大值,因…...

JWT的头部、载荷和签名分别包含哪些信息?

JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。每个部分都是经过Base64编码的JSON字符串。 1:头部(Header): 头部通常包含两个信息:令牌类型(typ)和所用的加密算法(alg)。令牌类型(typ)指示该令牌类型为JWT。加密算法(…...

【烧火柴问题】奇思妙想火柴

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

C++数据结构算法篇Ⅰ

C数据结构算法篇Ⅰ 📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容讲解数据结构中的链表结构 文章目录 C数据…...

Python selenium获取元素信息

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 主要text属性和三个方法get_attribute(),get_property(),get_dom_attribute() text属性获取元素的文本信息; get_attribute(),ge…...

测试Winsock的select

说明 实现了一个回显一行字符串的服务器:客户端发送一行字符串,一’\n’结尾,服务器接受完一行后就原封不动地发回给客户端。 windows下对select的能监控的Socket数量是有限制的,若超过,一种方案是再开一个线程。 #i…...

CentOS 搭建 Hadoop3 高可用集群

Hadoop FullyDistributed Mode 完全分布式 spark101spark102spark103192.168.171.101192.168.171.102192.168.171.103namenodenamenodejournalnodejournalnodejournalnodedatanodedatanodedatanodenodemanagernodemanagernodemanagerrecource managerrecource managerjob hist…...

ModuleNotFoundError: No module named ‘paddle.fluid.incubate.fleet‘

在使用rocketqa的时候可能会遇到下面的问题: 问题: 解决方法: 这完全是paddlepaddle的问题。 在rocketqa/utils/optimization.py出现下面的语句,这个时候直接把出错的注释掉就可以,因为它完全没有用到。(…...

亲测高效降AI工具:高AI率论文1小时达标指南

为了搞定论文提交前AI率迟迟降不下来的难题,我前后测了十多款市面主流的降AI工具,从降AI效率、适配检测平台、使用成本、操作便捷性四个核心维度出发,整理出这份客观实用的测评。不管是中文还是英文论文、免费还是付费需求都能覆盖&#xff0…...

【限时解密】UE6.5.2 Preview版C++27调试增强包(含DWARF5符号扩展插件):仅开放72小时申请通道

第一章:UE6.5.2 Preview版C27调试增强包核心特性概览Unreal Engine 6.5.2 Preview 版首次集成 C27 调试增强包(C27 Debug Enhancement Pack),该包并非语言标准实现,而是基于 Clang 19 与 MSVC 2025 工具链深度定制的调…...

5步解锁全球化内容生产:MoneyPrinterTurbo多语言视频创作全指南

5步解锁全球化内容生产:MoneyPrinterTurbo多语言视频创作全指南 【免费下载链接】MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM. 项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyP…...

OpenClaw技能组合:Kimi-VL-A3B-Thinking+文件处理实现智能归档

OpenClaw技能组合:Kimi-VL-A3B-Thinking文件处理实现智能归档 1. 为什么需要智能文件归档系统 作为一名长期与杂乱文件搏斗的技术从业者,我深知手动整理文件的痛苦。每次收到发票、合同或报告,都需要先打开文件查看内容,然后根据…...

3分钟快速上手WindowResizer:终极窗口强制调整工具

3分钟快速上手WindowResizer:终极窗口强制调整工具 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽大小的应用程序窗口而烦恼吗?WindowR…...

别再做老好人了,优秀PM都有攻击性!

在职场中,“老好人”似乎是一个自带“善意”的标签,但对于项目经理(PM)而言,这三个字往往意味着内耗、妥协与项目失控。很多PM深陷“讨好型人格”的陷阱,怕得罪客户、怕得罪团队、怕得罪领导,凡…...

2025届最火的五大降AI率方案实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在数字化内容生产这一来由之处,过度去依赖人工智能生成内容也就是AIGC&#xff0…...

如何用DeepSeek高效处理学术论文审稿?5个实用提示词模板分享

如何用DeepSeek高效处理学术论文审稿?5个实用提示词模板分享 学术论文的审稿过程往往让研究者们又爱又恨——它既是提升研究质量的必经之路,又是耗时费力的繁琐环节。想象一下这样的场景:凌晨两点,你刚收到三位审稿人总计20页的修…...

G-Helper华硕笔记本优化指南:告别臃肿控制软件,3步打造高效设备

G-Helper华硕笔记本优化指南:告别臃肿控制软件,3步打造高效设备 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, …...

网络设备唯一身份证:MAC地址原理与作用全网最详解析

网络设备唯一身份证:MAC地址原理与作用全网最详解析 前言一、MAC地址:核心定义1.1 标准定义1.2 通俗理解1.3 核心特性 二、MAC地址:表示格式2.1 标准格式2.2 组成结构(两大部分)2.3 结构流程图 三、MAC地址&#xff1a…...