顺序表是将数据元素放到一块开辟的连续存储空间,相邻元素的逻辑地址也相邻(逻辑与物理统一)

在上面的图片中可以看到顺序表是在堆中是一块连续的内存空间

优点:1.空间利用率高(连续存放,命中率高)
2.查询可以通过索引直接查找,非常便利(随机访问)
缺点:1.插入和删除比较慢,每次插入都需要遍历元素来找到适当的位置进行插入和删除,
2.插入时需要判断是否需要扩容,扩容时会有额外的空间需求
3.存储的元素过多时要进行扩容,存储的元素过少时会造成额外的空间浪费,例如你的array.length=100,但是实际有效元素size=5,只有5个,剩下的空间无法利用起来,会造成空间浪费

从上面的图片可以看到链表并不是连续存储的,而是随机存放的,通过它的next域链接每个节点

链表是程序运行过程中动态的空间分配,只要存储器内存够用,就不会出现空间溢出的现象,相邻数据元素可随意存放
优点:1.插入和删除元素比较快,只需要改变相应元素的next域的指向
2.没有空间限制,存放元素比较自由,只要存储器有空间,就不会出现溢出问题,不用考虑扩容问题
缺点:1.不能随机访问,查找时需要从头遍历链表查找某个元素
2.需要占用额外的空间去存储next域。

在使用时如何去选择使用顺序表还是链表?
我们可以结合两者各自的优缺点去选择是使用链表还是顺序表
使用顺序表的一般情况:
1.需要频繁的去查找访问元素
2.事先知道顺序表的长度,并且需要不断的去查找或者访问元素,可以使用顺序表
使用链表的一般情况:
1.需要频繁的去进行增加和删除操作,对于链表来说进行这样的操作开销很小,这个时候可以选择链表
2.当不知道存储数据是多少时,为了防止不断的扩容和空间浪费,此时也可以选择链表。

顺序表和链表各自的优缺点相关推荐

  1. 比较顺序表和链表的优缺点

    1.比较顺序表和链表的优缺点,他们分别在什么场景下使用它. 顺序表支持随机访问,单链表不支持随机访问. 顺序表插入/删除数据效率很低,时间复杂度为O(N)(除尾插尾删),单链表插入/删除效率更高,时间 ...

  2. 2.6顺序表和链表的优缺点(区别、特点)详解

    顺序表和链表由于存储结构上的差异,导致它们具有不同的特点,适用于不同的场景.本节就来分析它们的特点,让读者明白 "在什么样的场景中使用哪种存储结构" 更能有效解决问题. 通过系统地 ...

  3. java数据结构与算法之顺序表与链表深入分析

    转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52953190 出自[zejian的博客] 关联文章: java数据结 ...

  4. 顺序表与链表结构及解析

    目录 前言 一.顺序表和链表是什么? 二.顺序表和链表的结构分析 0.线性表 1.顺序表 1.1顺序表概念及结构 1.2顺序表功能的基本实现 3.链表 3.1 链表的概念及结构 3.2 链表的分类 前 ...

  5. 【数据结构】线性表4——顺序表和链表的比较

    文章目录 顺序表和链表的比较 单链表.循环链表和双向链表的时间效率比较 顺序表和链表的优缺点比较 顺序表和链表的基本操作比较 实现线性表时,用顺序表还是链表好? 顺序表和链表的逻辑结构都是线性结构,都 ...

  6. Datawhale组队学习 Task02:顺序表和链表(2天)

    Task02 顺序表和链表(2天) 1. 线性表的定义与操作 1.1 线性表的定义 线性表(Linear List)是由n(n >= 0)个相同类型的数据元素a1,a2,...,an 组成的有序 ...

  7. 顺序表、链表、双向循环链表

    顺序表.链表.双向循环链表 SeqList.h #pragma once #include<stdio.h>#define ListSize 100 //线性表的最大长度 typedef ...

  8. C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...

    c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...

  9. 8.基本数据结构-顺序表和链表

    一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计 ...

最新文章

  1. 为一月份开设的组队学习课程投票啦
  2. 隔空作画,握拳清屏,这个手部跟踪项目火了,在线可玩
  3. Java 基本功之(二)Java 面向对象
  4. 关于SAP Kyma在国内的落地情况
  5. 矩阵形状| 使用Python的线性代数
  6. html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式...
  7. C# Excel导入、导出
  8. 机器学习入门|线性回归(二)
  9. macos下如何配置ssh无密码登录
  10. Android布局文件xml
  11. iOS获取手机卡IMSI信息
  12. 关于未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序的解决办法
  13. iframe中加载html页面,jQuery - 动态创建iframe并加载页面
  14. 【时间之外】Chrome浏览器缓存解析
  15. 人脸及指纹双重识别门禁系统
  16. HTML中温度符号的输入
  17. 双硬盘双系统win10+manjaro-kde搭建
  18. 【算法设计与分析】(6)算24点问题(回溯法)
  19. Java基础:宾馆管理系统(一)
  20. AtCoder 001 A BBQ Easy

热门文章

  1. 同花顺显示无法与服务器建立联系,【图】同花顺不能登入的试试这个服务器(已失效)_同花顺_股票软件技术交流论坛_理想论坛 - 股票论坛...
  2. 计算机图片组合快捷键,10个实用的Win10组合快捷键技巧,学完你就是大神啦
  3. 题目:下列关于构造方法的叙述中,错误的是( )。
  4. SQL查询某一字段重复的数据
  5. 安卓应用测试MonkeyMonkeyScriptMonkeyRunnerpyhton性能工具脚本
  6. 模拟电磁炮国一设计资料【2019电赛H题国一作品】
  7. 2021年10月、11月总结
  8. Python3处理excel图表
  9. 经过一段时间的努力和研究,开心农场外挂助手终于小有成就(欢迎大家与我交流)
  10. 线上商城的抢购设计简析