学习笔记-数据结构-线性表(2024-04-17)

devtools/2024/10/18 23:24:53/

设计一个算法实现在单链表中删除值相同的多余节点的算法。

设计思想:双指针
变量说明
head - 参数变量,代表链表的头节点。在调用DelSameNum函数时,需要传递链表的头节点的地址给这个参数,从而允许函数对链表进行操作。
p - 指针变量,用于在链表中顺序遍历节点。在外层循环中,p从头节点开始,依次指向链表中的每一个节点,直到最后一个节点。
q - 指针变量,与p配合使用。在内层循环中,q从p所指向节点的下一个节点开始,遍历p之后的所有节点。它用于寻找和删除与p指向节点的data值相同的节点。
s - 指针变量,始终指向q节点的前一个节点。在删除q所指向的节点时,s的next将被更新为q->next,从而维持链表的连续性。s是在内层循环中声明并使用的。

typedef struct node
{int data;struct node * next;
}LinkList;
void DelSameNum(LinkList * head)
{struct node *p;struct node *q;for(p=head;p->next!=NULL;p=p->next) // 遍历链表直到最后一个节点{s=p; // 设置s指向为p,因为删除操作将从p的下一个节点开始for(q=p->next;q!=NULL;){if(q->data==p->data) // 如果找到值相同的节点{s->next=q->next; // s下一个所指向的节点直接跳到q的下一个free(q); // 释放被删除节点的内存q=s->next; // 更新q,继续检查下一个节点}else{s=q; // 如果节点值不同,更新s为当前的qq=q->next; // 移动到下一个节点}}}
}

动态大致图解如下:
在这里插入图片描述


http://www.ppmy.cn/devtools/15560.html

相关文章

如何快速申请SSL证书实现HTTPS访问?

申请SSL证书最简单的方法通常涉及以下几个步骤,尽量简化了操作流程和所需专业知识: 步骤一:选择适合的SSL证书类型 根据您的网站需求,选择最基础的域名验证型(DV SSL)证书,它通常只需验证域名所…

暴雨亮相CCBN2024 助力广电行业数智化转型

4月23日,第三十届中国国际广播电视信息网络展览会(简称CCBN2024)在北京开展,本次展览会由国家广播电视总局指导、广播电视科学研究院主办,作为国内广电视听领域首个综合性、专业化、引领性、国际化科技产业盛会&#x…

组件通信透传(transparently pass)

Vue.js 中,v-on"$listeners" 是一种常见的模式,主要用于组件开发中,它允许组件实现透传(transparently pass)事件监听器。这样的功能对于实现一个透明的包装组件或高阶组件非常有用。下面我详细解释一下 $li…

人耳的七个效应

1、掩蔽效应 • 人们在安静环境中能够分辨出轻微的声音,即人耳对这个声音的听域很低,但在嘈杂的环境中轻微的声音就会被淹没掉,这时将轻微的声音增强才能听到。 • 这种在聆听时,一个声音的听阈因另一声音的出现而提高的现象&…

ubuntu ROS1 C++下使用免安装eigen库的方法

1、eigen库的定义及头文件介绍 Eigen是一个高层次的C 库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。 2、获取eigen库安装包 下载地址:eigen库官网 ,如下图所示: 下载最新版tar.bz2即可&…

uniApp设置和清除定时器

首先是在data中定义一个变量,用来存放定时器 data() {return {timer: null,} } 在适当的地方创建定时器 this.timer setInterval(() > {console.log(111); }, 10000) 在onHide或者是onUnload中销毁定时器,一般来说tabbar页面的切换会触发onHide&…

MySQL从安装、配置到日常操作和管理的关键步骤

MySQL是一款广泛使用的开源关系型数据库管理系统,用于存储、管理、检索和处理数据。以下是一个详细的MySQL使用教程,包括安装、基本操作、数据管理、权限控制、备份与恢复等方面的内容: 一、MySQL安装 下载: 访问MySQL官方网站&a…

docker打包部署自己的应用

docker部署应用 当谈及使用 Docker 进行容器化部署应用时,可以想象它是一个能够将整个应用程序及其所有依赖项打包成一个独立、可移植的容器的工具。这个容器不仅包含了应用代码,还包括了操作系统、运行时环境以及所有依赖的库和组件。这样一来&#xf…