数据结构与算法—链表list

news/2025/2/12 8:57:55/

目录

链表

链表类型

链表插入

链表删除

写程序注意点

与数组区别

链表应用

LRU 实现思想


链表

        链表,一种提高数据读取性能的技术,在硬件设计、软件开发中有广泛应用。常见CPU缓存,数据库缓存,浏览器缓存等。缓存满时,采用相应的策略清除一部分缓存。如FIFO,LFU(Least Frequently Used),LRU(Least Recently Used)

链表类型

        单链表,双链表,循环链表

链表插入

 

x->next = p->next;
p->next = x;

链表删除

删除p节点的后继节点

p->next = p->next->next;

删除链表的最后一个节点

if(head->next ==  NULL)head = NULL;

写程序注意点

链表尾空,代码能否工作

链表只有一个节点,

链表包含两个节点?

链表头尾节点处理

与数组区别

数组需要连续的存储空间;链表不需要连续的存储

数组与链表的对比,并不能局限于时间复杂度。

数组简单易用,在实现上使用连续的内存空间,借助于CPU的缓存机制,预读数组中的数据,访问效率更高。而链表在内存中并不是连续存储,没法预读。

数组缺点,系统没有足够的连续空间,导致内存不足。数组申请时大小固定,如果不够用,不支持动态扩容。

如果代码对内存使用苛刻,使用数组。因为链表节点占用空间。而且链表的删除,插入导致内存申请和释放,容易造成内存碎片。

链表应用

LRU 实现思想

维护一个链表,越靠近尾部节点,是越早之前访问。有新数据访问时,从链表头开始顺序遍历链表。

  1. 如果数据已经被缓存到链表中,遍历链表,将其从原来位置删除,插入到链表头。
  2. 如果不在缓存中,缓存未满,直接将此节点插入到链表的头部
  3. 如果缓存满,,将链表尾节点删除,将新的节点插入链表的头部

list.h

typedef struct listNode
{struct listNode *next;void *value;
}listNode;typedef struct linkedList
{listNode *head;size_t len;
}linkedList;


http://www.ppmy.cn/news/27691.html

相关文章

基于Frenet优化轨迹的⾃动驾驶动作规划⽅法

动作规划(Motion Control)在⾃动驾驶汽⻋规划模块的最底层,它负责根据当前配置和⽬标配置⽣成⼀序列的动作,本⽂介绍⼀种基于Frenet坐标系的优化轨迹动作规划⽅法,该⽅法在⾼速情况下的ACC辅助驾驶和⽆⼈驾驶都具有较强…

自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置

文章目录一、ECU TEST 连接配置简介二、TBC配置 test bench configuration三、TCF配置 test configuration提示:以下是本篇文章正文内容,下面案例可供参考 一、ECU TEST 连接配置简介 1、ECU TEST(简称ET),用于HIL仿…

六【 SpringMVC框架】

一 SpringMVC框架 目录一 SpringMVC框架1.什么是MVC2.SpringMVC概述3.SpringMVC常见开发方式4.SpringMVC执行流程5.SpringMVC核心组件介绍6.快速构建Spring MVC程序✅作者简介:Java-小白后端开发者 🥭公认外号:球场上的黑曼巴 🍎个…

QT入门Containers之QStackedWidget

目录 一、QStackedWidget界面相关 1、布局介绍 2、插入界面 3、插入类界面 二、Demo展示 此文为作者原创,创作不易,转载请标明出处! 一、QStackedWidget界面相关 1、布局介绍 QStackedWidget这个控件在界面布局时,使用还…

Tomcat源码分析-关于tomcat热加载的一些思考

在前面的文章中,我们分析了 tomcat 类加载器的相关源码,也了解了 tomcat 支持类的热加载,意味着 tomcat 要涉及类的重复卸装/装载过程,这个过程是很敏感的,一旦处理不当,可能会引起内存泄露 卸载类 我们知…

消费复苏迎“春”暖,服装行业如何开启“狂飙”模式?

2023年开年前2个月,全国多地消费市场的“热度”一直在持续上涨,商场、餐馆、娱乐场所等消费市场人气旺盛,消费复苏的“暖”意十足,一幕幕“忙”起来、“热”起来的场景,让各行各业的商家都对未来充满了期待与信心。在消…

C++基础入门丨8. 结构体——还需要知道这些

Author:AXYZdong 硕士在读 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDNAXYZdong,CSDN首发,AXYZdong原创 唯…

中电金信:金融数字化转型路在何方?这里有答案

近期,媒体大数网整合了业内10份研究报告,详解金融数字化转型的思路、方法与路径。其中「中国电子金融级数字底座“源启”白皮书」也被收录其中。让我们一同阅读文章,探究金融数字化转型相关问题的答案吧。 当前,金融科技正在回归…