C语言如何删除表中指定位置的结点?

news2024/12/25 9:04:43

一、问题

        如何删除链表中指定位置的结点?

二、解答

        删除链表中指定的结点,就像是排好队的⼩朋友⼿牵着⼿,将其中⼀个⼩朋友从队伍中分出来,只需将这个⼩朋友的双⼿从两边松开。

        删除结点有两种情况:

        (1)被删除结点是头结点。这种情况使 head 指向第⼆个结点即可,即 head=p->next;

        (2)被删除结点不是头结点,这种情况只需将被删结点的前⼀结点指向被删结点的后一结点可,例如:pq->next=ph->next;。

         在删除了链表中的此结点后,需要将此结点所占的内存释放掉,以节省内存,⽅便其他变量的应⽤。 删除链表结点的过程如下:

        (1)找到要删除的位置,与插⼊结点时查找位置相同。相应代码如下。

        在遍历了结点并找到删除的位置后,判断p所指向的后继结点是否为 NULL,若后继结点为 NULL,则说明不存在这个想要删除的结点,程序直接退出。相应代码如下。

if(!p->nexi||i>i-1) 
    exit(1);

        (2)找到要删除的结点的位置,需要执⾏删除结点操作和释放内存操作。相应代码如下。

r=p->next;

P->next=r->next;

free(p);

        实现删除指定位置的链表结点的过程如下所示。

三、总结

        在链表中删除结点,就是将结点从链表中分离出来,撤销原来的链接关系,⽽不是将结点从内存中抹掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1677125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三菱FX3U-4AD模拟量电压输入采集实例

硬件:PLC模块 FX3GA-24MT ;A/D模块FX&#xff13…

连接虚拟机的 redis

用Windows 的 Redis Insight 连接虚拟机的 安装redis发现连不上 我的redis是新安装,没有用户名密码,发现是ip问题 127 开头的被我注释了,换成了ifconfig查到的ip

Nginx 生产环境部署的最佳实践

你好呀,我是赵兴晨,文科程序员。 最近一段时间,我一直在和大家一起探讨Nginx的相关话题。期间,我收到了很多小伙伴的私信,他们好奇地问我:在生产环境中,Nginx应该如何配置? 他们在…

idea启动Jsp非maven项目时的一些步骤

文章目录 事前准备eclipse项目举例idea打开eclipse项目安装tomcat配置启动项启动测试 一些小问题到不到servlet 事前准备 非社区版idea【否则启动项无法配置】tomcatmysql eclipse项目举例 idea打开eclipse项目 剩下的全部下一步即可 安装tomcat 自己的文章 Javaweb - t…

《云原生安全攻防》-- 构建云原生攻防场景

在本节课程中,我们将学习云原生攻防场景的构建。为了研究云原生安全攻击案例,我们需要搭建一个云原生攻击测试环境,以便进行攻防研究和攻击手法的复现。 在这个课程中,我们将学习以下内容: 构建云原生攻防场景&#xf…

设计模式-动态代理

目录 定义 代理模式的优缺点 优点 缺点 应用场景 静态代理 动态代理 相关资料 定义 代理模式(Proxy Pattern)是一种结构型设计模式,它的概念很简单,它通过创建一个代理对象来控制对原始对象的访问。代理模式主要涉及两个…

Spring WebFlux 初探-响应式编程-021

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

Unity射击游戏开发教程:(17)添加推进器推进和推进器推进动画

添加推进器打开功能 我们可以添加一个推进器栏,用于跟踪玩家使用推进器增强(按住左 Shift 键)的时间。当未使用推力时,将会有一段延迟,直到推力条开始再生。当棒再生时,可以使用推进器,但再生过程将重新开始。 我们将使用 Unity 的 UI Slider 组件,因此我们将其添加到已…

【挑战30天首通《谷粒商城》】-【第一天】10、环境-docker安装mysql

文章目录 课程介绍一、docker 安装 mysql Stage 1:下载镜像文件 Stage 1-1:打开官网查看镜像 Stage 1-2:拉取镜像 Stage 1-3:查看拉取的镜像 Stage 2:创建实例并启动 A:mysql(5.7版)…

代码随想录—— 填充每个节点的下一个右侧节点指针(Leetcode116)

题目链接 层序遍历 /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _…

【完整过程】Windows下记录PadleOCR训练自己的ocr模型

一、前期准备 1、代码 参考的博主使用的是2.6版本的 博主的paddleocr代码 下面这个是官方的,可能已经更新了(我用的是官网当前最新版) paddleocr的源代码 注意:最好把上面两个代码都下载下来,后面都会用到 参考博…

HTML静态网页成品作业(HTML+CSS)——自动化专业介绍设计制作(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

从需求到实现:能源软件服务商如何量身定制企业解决方案

能源行业需要数字化转型的原因主要有以下几点:首先,数字化技术可以提高生产效率和安全性,通过实时监控和智能调度降低事故风险,并实现远程控制和自动化生产。其次,数字化转型有助于推动能源行业的创新发展,…

Android ndk获取手机内部存储卡的根目录方法

如下所示: 代码语言:javascript jclass envcls env- FindClass("android/os/Environment"); //获得类引用if (envcls nullptr) return 0;//找到对应的类,该类是静态的返回值是FilejmethodID id env- GetStaticMethodID(envcls,…

Nodejs 第七十章(OSS)

OSS OSS(Object Storage Service)是一种云存储服务,提供了一种高度可扩展的、安全可靠的对象存储解决方案 OSS 对象存储以对象为基本存储单元,每个对象都有唯一的标识符(称为对象键)和数据。这些对象可以…

Java | Leetcode Java题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arra…

oracle多条重复数据,取最新的

1、原理讲解-可直接看2 筛选出最新的 SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY LOCALAUTHID ORDER BY LASTUPDATETIME DESC) AS rn FROM USER_LOCALAUTH_STATE t ) t WHERE t.rn 1; 解释&#xff1a; 这个序号是基于[LOCALAUTHID]字段进行分…

前端 finalShell 与 docker 创建 服务连接 部署项目

准备 fianlShell 下载地址 官网下载地址 要哪个下那个&#xff0c; 我的是第一个 下载后 安装 打开 选择 SSH 进行配置 配置后点击确定即可 1、yum install -y docker -y 表示不询问&#xff0c;使用默认配置进行安装 检测版本 装最新的 2、 yum list installed | gre…

wangeditor覆盖el-select下拉框解决方法

问题&#xff1a; 发现wangeditor的层级过高&#xff0c;一开始一直想要修改全局css&#xff0c;奈何半天找不到&#xff0c;网上一大堆解决方法都无法生效&#xff0c;自定义的css样式也无法覆盖。 如果有尝试好久的朋友可以参考我的解决方案&#xff1a; 关键语句&#xf…

关于JVM内存模型和堆内存模型的理解

文章目录 前言一、JVM 内存模型的理解1.第一部分&#xff1a;线程共享区&#xff08;堆和方法区&#xff09;2.第二部分&#xff1a;线程独占区&#xff08;程序计数器、虚拟机栈和本地方法栈&#xff09;3.JVM的几个知识点3.1 垃圾回收就指线程共享区&#xff08;堆和方法区&a…