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

一、问题

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

二、解答

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

        删除结点有两种情况:

        (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.rhkb.cn/news/328887.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CRM与SCRM:联系与区别

引言 在当今数字化时代,企业与客户之间的互动变得日益频繁而复杂。为了更好地管理客户关系并提供更个性化的服务,许多企业采用了客户关系管理(CRM)系统。与此同时,随着社交媒体的普及和社交化互动的增加,社…

【文末附gpt升级方案】探讨当前时机是否适合进入AIGC行业(一)

随着科技的飞速发展,人工智能生成内容(AIGC)作为新兴的技术领域,正逐步走进公众的视野,并在多个行业展现出巨大的应用潜力。然而,对于创业者、投资者以及希望进入这一领域的专业人士来说,当前时…

传输层协议——TCP协议

目录 一、TCP协议 二、TCP协议格式 三、序号和确认序号 四、窗口大小 五、六个标记位 六、三次握手和四次挥手 七、滑动窗口 八、拥塞控制 九、延迟应答和捎带应答 1、延迟应答 2、捎带应答 十、面向字节流 十一、粘包问题 十二、TCP异常情况 十三、再谈listen函…

小程序|锁定查询功能如何使用?

学生或家长想要实现自己查询完成后,任何人都无法再次查询,老师应该如何设置?易查分的【锁定查询功能】就可实现,下面教大家如何使用吧。 📌使用教程 🔒锁定查询功能介绍 ✅学生或家长自主锁定:开…

实现mysql的主从复制、实现MySQL的读写分离与负载均衡

实验环境 (注明)以下的所有关于yum和rpm以及tar的软件需要自己准备,没有的话可以私信博主 实验目标: 1.实现mysql主从复制 2.实现mysql读写分离与负载均衡 实验一、搭建mysql主从复制 1.建立时间同步环境,在主节…

Linux-笔记 开发板Uboot命令使用

将之前自学的知识整理了一下笔记,以便回忆 信息查询命令 1、help/?:查看所支持命令 > ? md md - memory displayUsage: md [.b, .w, .l] address [# of objects]2、bdinfo:查询板子信息 > bdinfo arch_number 0x00000000 boot_p…

C#知识|上位机子窗体嵌入主窗体方法(实例)

哈喽,你好啊,我是雷工! 上位机开发中,经常会需要将子窗体嵌入到主窗体, 本节练习C#中在主窗体的某个容器中打开子窗体的方法。 01 需求说明 本节练习将【账号管理】子窗体在主窗体的panelMain容器中打开。 账号管理子窗体如下: 主窗体的panelMain容器位置如图: 02 实现…

四川古力未来科技抖音小店:科技赋能,购物新体验!

在当下这个数字化飞速发展的时代,电商行业早已成为了人们日常生活中不可或缺的一部分。而抖音小店作为电商领域的一匹黑马,正以其独特的优势和魅力,吸引着越来越多的消费者。今天,我们就来一起探讨一下四川古力未来科技抖音小店的…

免费视频格式在线转换网站,推荐这5款!

在数字化时代,视频已成为我们日常生活和工作中不可或缺的一部分。然而,随着各种设备和平台的不断涌现,视频格式繁多,常常会出现不兼容的情况。为了解决这一问题,视频格式在线转换网站应运而生,成为了我们应…

微软宣布GPT-4o模型,可在 Azure OpenAI上使用

5月14日,微软在官网宣布,OpenAI最新发布的多模态模型GPT-4o,可以在 Azure OpenAI 云服务中使用。 据悉,GPT-4o支持跨文本、视频、音频多模态推理,例如,通过GPT-4o打造一个AI助手,用于辅导孩子解…

【Python】语句与众所周知【自我维护版】

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇博客是在之前的基础上进行的维护 目录 条…

Kibana使用

一、什么是Kibana   Kibana 是一个开源的分析和可视化平台,Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。 Kibana使用&#xff1a…

前端学习第一课

AJAX 事先说明,这只是记录,并不是从零到一的教学内容,如果想要学习的话,可以跳过本文章了 ok,转回正题,正如上面所说,这只是记录。其实我是有一定的前端基础的,也做过涉及相关的开发…

力扣82题删除排序链表中的重复元素

82题删除排序链表中的重复元素 题目描述 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 题目分析 这个题需要返回已排序链表,我们需要考虑一种情况就是头结点为重复元素&…

学习C语言的重要性以及如何学好

配套视频:https://www.bilibili.com/video/BV1kw4m1Q7AV/?spm_id_from333.999.0.0 一、C语言在互联网领域重要的开源项目 https://github.com/mysql/mysql-server 数据库开源项目【互联网重型开源项目】 编程语言:C/C/ASM 部分汇编代码 开源项目核心…

【汇编】算术指令

一、加法指令 (一)各加法指令的格式及操作 加法指令可做字或字节运算 (1)加法指令 ADD 格式:ADD DST,SRC执行的操作:(DST) ← (SRC)(DST) (2)带进位加法指令 ADC 格式&#xf…

除自身以外数组的乘积[中等]

优质博文:IT-BLOG-CN 一、题目 给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法&#xff…

【SQL】SQL常见面试题总结(2)

目录 1、增删改操作1.1、插入记录(一)1.2、插入记录(二)1.3、插入记录(三)1.4、更新记录(一)1.5、更新记录(二)1.6、删除记录(一)1.7、…

Spring初学入门(跟学笔记)

一、Spring概述 Spring是一款主流的Java EE轻量级开源框架。 Spring的核心模块:IoC(控制反转,指把创建对象过程交给Spring管理 )、AOP(面向切面编程,在不修改源代码的基础上增强代码功能) 二、…

常用五款文件加密软件|好用加密软件工具分享

随着信息化时代的到来,数据安全问题日益凸显,加密软件应运而生,成为了保护数据安全的重要手段。在市场上,众多加密软件层出不穷,各有千秋。本文将介绍几款常用的加密软件,分析它们的优缺点,以帮…