链表与数组不同,是在物理空间中非连续的,依靠前一个节点记录下一个节点的地址进行连接的一种数据结构。

链表中每个节点存储的内容为当前节点和下个节点的指针。

链表一般分为三种

1.单向链表

2.双向链表

3.循环链表,循环链表又分为循环单向链表和循环双向链表

链表中插入或删除节点的时间复杂度分两种:

1.删除等于某个值的节点,复杂度为O(n), 因为要先查询

2.删除给定指针指向的节点,如果是单向链表是O(n), 双向链表是O(1), 因为节点记录了前一个节点的值

链表查找数据的时间复杂度是O(n)

如果代码对内存空间的使用较严格,那么建议使用数组,原因如下

1.链表中每个节点除了存储元素本身外,还要存储下个节点的指针,会浪费额外空间

2.链表在内存中非连续存储,频繁的插入和删除容易导致内存的碎片化,在java中容易导致频繁GC

如何通过链表实现一个LRU算法:

使用一个单向链表,越靠近链表尾部的表示越早之前访问的。如果有查找,则依次遍历链表,将该节点放到链表头部,如果链表大小已经满了的话,可以先删除尾节点再插入,否则则可以直接插入。

数据结构与算法-链表篇相关推荐

  1. 《算法思维——一种问题驱动的思维方式》之第5篇:数据结构之动态链表篇——采用C++编程语言实现

    <算法思维--一种问题驱动的思维方式>之第5篇:数据结构之动态链表篇--采用C++编程语言实现 在数据结构的学习中,链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围 ...

  2. JavaScript数据结构与算法——链表详解(上)

    注:与之前JavaScript数据结构与算法系列博客不同的是,从这篇开始,此系列博客采用es6语法编写,这样在学数据结构的同时还能对ECMAScript6有进一步的认识,如需先了解es6语法请浏览ht ...

  3. 数据结构与算法--链表实现以及应用

    数据结构与算法–链表实现以及应用 链表是面试时候使用最频繁的一种数据结构.链表的结构简单,他由指针将若干个节点链接成链状结构.链表的创建,插入,删除,查询操作都只有几行代码可以完成,代码量比较少,可以 ...

  4. JavaScript数据结构与算法——链表详解(下)

    在JavaScript数据结构与算法--链表详解(上)中,我们探讨了一下链表的定义.实现原理以及单链表的实现.接下来我们进一步了解一下链表的其他内容. 1.双向链表 双向链表实现原理图: 与单向链表不 ...

  5. 数据结构与算法-链表学习笔记

    数据结构与算法-链表学习笔记 链表的概念 链表是有序的列表. 链表是以节点的方式来存储,是链式存储,它在内存中并不是一定是连续的. 每个节点包含 data 域:存储数据, next 域:指向下一个节点 ...

  6. 数据结构与算法 -- 链表

    一.链表介绍 1.链表有地址不连续的结点序列,必须通过指针相互连接. 2.链表的分类: (1)单向线性链表 每个节点中除了存储数据结构内容以外,还需要保存指向下一个节点的指针,叫做后指针.最后一个节点 ...

  7. 数据结构与算法一篇帮助你吃下KMP算法

    模式匹配 什么是模式匹配,我们用一个案例来说明: 当S = "s1,s2,s3,s4 -sn" T="t1,t2,t3,t4 - tn" 在字符串S中寻找T字符 ...

  8. 数据结构与算法--基础篇

    目录 概念 常见的数据结构 常见的算法 算法复杂度 空间复杂度 时间复杂度 数据结构与算法基础 线性表 数组 链表 栈 队列 散列表 递归 二分查找 概念 常见的数据结构 常见的算法 算法复杂度 空间 ...

  9. 【浅学数据结构】算法概念篇

    一.什么是算法? 算法是解决特定问题求解步骤的描述,在计算机中则表现为一个或多个指令的组合规则:常用的经典算法有:循环累加求和/高斯求和.二叉树查找.冒泡排序.散列算法查找(哈希表)等. 二.算法与数 ...

最新文章

  1. timesten 修改最大连接数
  2. AI一分钟 | 马斯克:我不是中本聪,我自己的比特币都丢了;商汤科技再获阿里巴巴15亿元投资,内部消息称C轮还有更大巨头入股
  3. 软件之最大全电子书免费版
  4. 安卓如何调出软键盘_智能汽车到底如何交互?小鹏用全场景语音给出了答案
  5. CSS3笔记之定位篇(一)relative
  6. 2数据库表增加一个字段_14个实用的数据库设计技巧!
  7. For input string:
  8. mysql 7 for windows_Mysql 5.7 for windows 免安装版(解压版)安装和配置
  9. Mac搭建本地服务器及测试demo
  10. 顶级SaaS公司的共同基因都有什么?
  11. 近世代数-群论基础二
  12. 编译CWM-recovery
  13. 用Unity3D实现打飞碟游戏
  14. APEX光学分析设计软件
  15. 备战秋招之数电模电知识点
  16. CodeForces 581A Vasya the Hipster
  17. 社会工程学利用的人性_社会互程学利用的人性“弱点”
  18. 互联网晚报 | 潮州特斯拉事故前视频公布;苹果为iPhone 14提供同机维修;文旅部:跨省旅游经营活动不再与风险区实施联动管理...
  19. log4cplus总结
  20. 浏览器中如何让视频倍速播放

热门文章

  1. LAN/WAN的区别
  2. 夏普手机回归媒体沟通会,倒计时海报寓意深刻
  3. 珠宝微商怎么引流?我给你几个建议
  4. The Lapse of Luxury
  5. INTEL MKL ERROR
  6. java-ArrayList实现一个电商管理系统的商品库存管理模块
  7. 明晚7点一直播房间号:129483084 不见不散,么么哒!
  8. 35-SpringBoot 短信验证码接口使用
  9. 基于JPEG压缩编码的数据压缩算法的研究与实现
  10. linux挂载u盘时显示只读文件系统,不能在里面进行新建复制操作