阅读 47

可视化线性表之单链表

前言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

概念介绍

原理讲解

我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明线性表的链式存储的实现原理

  • 在未作任何操作时,效果如下图
    在这里插入图片描述

获取元素

  • 我们获取一个值为6的元素,我们会从头元素12开始依次往后遍历直到找到值6的元素(如果整个线性表遍历结束没有找到目标值,则返回空)效果如下图
    在这里插入图片描述

删除元素

  • 随机删除位置2的元素,此时该元素值为3。删掉该元素后,元素值8的后继元素值由3变为24,元素值24的前驱元素由3变为8,效果如下图
    在这里插入图片描述

插入元素

  • 随机往位置5插入元素值90,插入该元素后,元素值6的后继元素由11变为90,元素值11的前驱元素变为90,效果如下图
    在这里插入图片描述

至此,单链表实现原理讲解完毕


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间复杂度

  • 线性表的存入和取出数据的时间复杂度为O(N)
  • 线性表的插入和删除数据的时间复杂度为O(1)

空间复杂度

  • 线性表的空间复杂度为O(1)

算法优缺点

  • 优点:
    • 可以快速添加和删除任意位置元素
    • 减少碎片空间出现,节约内存空间
  • 缺点:
    • 查找操作需要移动大量元素

效果展示

在这里插入图片描述

更多算法学习请关注我的公众号

在这里插入图片描述

说明

  • 在公众号中回复“算法源码”即可获取十大经典算法源码
  • 在公众号中回复“算法书籍”即可获取经典入门算法书籍
  • 在公众号中回复“数据结构”即可获取数据结构相关源码
关注下面的标签,发现更多相似文章
评论