双向链表

devtools/2024/9/24 14:05:38/

目录

区别

创建结构体

初始化

判断链表结束


区别

无头单向非循环链表

结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多

带头双向循环链表

结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了

且无死角,每个结点都有下一个结点,但是在删除结点的时候,需要判断

创建结构体

初始化

传的是形参,不会改变实际

在单链表里是设置的是二级指针,但是还有一种方法是返回值接收

判断链表结束

不建议第一种

第二种可以完美使用空链表的情况

删除结点

如果链表只有一个头结点,直接删除并释放空间,会导致下面使用指针对链表访问的操作成为访问野指针,非法操作。

所以在删除时需要判断是否只有头结点

暴力判断:assert ( phead->next != phead );

温柔判断:if / else

销毁链表

先利用循环free每个结点,最后free头结点,不用在函数内部将头结点置为空,因为传参传递的是形参,形参的变化不会影响实参,此处与单链表操作不同

需要在主函数内部将指针置空

LTDestory ( plist ) ;

plist = NULL;

同样,删除结点时,也可以在主函数内部将pos位置置空

循环条件

以前在单链表里,循环条件基本上都是(cur),只要cur存在不为空就继续操作,直到cur走到链表末尾

此处循环的双链表循环条件可以写成(cur != phead),只要cur不走到头结点就继续操作


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

相关文章

【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点(一)优点(二)缺点 四、MLP分类任务实现…

简单接口自动化框架实现(Python+requests+pytest)

1、接口自动化流程 1.需求分析2.挑选需要做自动化测试的功能3.设计测试用例4.搭建自动化测试环境[可选]5.设计自动化测试项目的架构[可选]6.编写代码7.执行测试用例8.生成测试报告并分析结果 2、框架结构 --api -->封装请求 --scripts -->编写测试脚本…

jmeter本身常用性能优化方法

第一种设置: 修改Jmeter.bat文件,调整JVM参数(修改jmeter本身的最小最大堆内存),默认都是1个G set HEAP-Xms5g -Xmx5g -XX:MaxMetaspaceSize256m我的本机内存是8G,那最大可以设置870%(本机内存的70%)5.6g 这里我设置的5g 如果…

【Text2SQL】DAIL-SQL阿里推出,在Spider取得了SOTA

论文解读:Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation 论文详细介绍了DAIL-SQL方法,这是一个针对Text-to-SQL任务的提示工程方法。这个方法旨在通过精心设计的提示(prompt engineering)来优化大型语…

什么是css?

CSS,全称“层叠样式表”(Cascading Style Sheets),是一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言。通过CSS,开发者可以控制网页…

ansible批量安装postgresql软件

本文为杭州云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 随着分布式系统和大规模应用的普及,自动化部署和管理变得越来越重要。Ansible 是一种流行的自动化工具,它…

Kali Linux 2024.3

新版本,新特性 Kali Linux 2024.3 版本带来了一系列新功能和优化改进,包括但不限于: 新增对高通骁龙 SDM845 芯片的支持:Kali NetHunter Pro 设备现在支持更多设备,提升了 Kali 移动渗透测试平台的兼容性和实用性 系统…

基于深度学习的文本情感原因提取研究综述——论文阅读

前言 既然要学习情感分析,那么肯定还要了解情感原因对抽取的发展历程,所以我又搜了一篇研究综述,虽然是2023年发表的,但是里面提及到的历程仅停留到2022年。这篇综述发布在TASLP期刊,是音频、声学、语言信号处理的顶级…