单链表结构与顺序存储结构优缺点

简单地对单链表结构和顺序存储结构做对比:

单链表 顺序表
存储分配方式 采用链式存储结构,用一组任意地存储单元存放线性表地元素 用一段连续地存储单元以此存储线性表地数据元素
时间性能 查找的时间复杂度O(n),插入和删除时间为O(1) 查找的时间复杂度O(1),插入删除平均需要移动表长一半的元素,时间为O(n)
空间性能 不需要预先分配存储空间,元素个数不受限制 需要预先分配存储空间,分大了浪费,分小了易发生上溢

通过上面的对比可以发现:

若线性表需要频繁查找,很少进行插入和删除时,宜采用顺序存储结构。
若需要频繁插入和删除时,宜采用单链表结构。

如在游戏开发中,对于用户注册的个人信息,除了注册时插入数据外,绝大多数情况都是读取,所以应该考虑用顺序存储结构。
而游戏中玩家的装备或武器列表,随着玩家的游戏过程中,随时会增加或删除,单链表结构更适合这种情况。
当然,这只是简单的类比,现实的软件开发中,要考虑的问题会复杂很多。

当线性表中的元素个数变化较大或根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致长度,比如一年12个月,一周7天,这种用顺序存储结构效率会高很多。

总之,线性表的顺序存储结构和单链表结构各有其优缺点,不能简单的说哪个好哪个不好,需要根据实际情况,综合平衡采用哪种数据结构更能满足和达到需求和性能。

单链表结构与顺序存储结构优缺点相关推荐

  1. 从无头单链表中删除节点 结构之法 4

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除. 分析与解答: 假设给定的指针为pCurrent,Node *pN ...

  2. 数据结构之链式存储结构和顺序存储结构

    顺序存储结构: 定义:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,以数据元素为单位,按数据元素在表中的次序存储. 优点: 不用为表示节点间的逻辑关系而增加额外的存储开销. 具有按元 ...

  3. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 。 A 单链表 B 静态链表 C 线性链表 D 顺序存储结构

    1.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 . A 单链表 B 静态链表 C 线性链表 D 顺序存储结构 答案:B 2.静态链表中指针表示的是() A 内存地址 B下一元素地 ...

  4. python 单链表节点怎么快速定义_线性表链式存储结构之单链表

    线性表的链式存储结构的特点就是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被占用的任意位置.比起顺序存储结构每个元素只需要存储一个位置就可以了.现在链式存储结构中,除了要存储数 ...

  5. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...

    还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...

  6. 日常学习随笔-数组、单链表、双链表三种形式实现队列结构的基本操作(源码注释)...

    一.队列结构(本文侧重于源码实现,基础理论不多赘述) 和栈一样,队列(queue)也是表,然而使用队列是在一端插入数据,在另一端删除数据.这里插入就是入队(enqueue),删除就是(dequeue) ...

  7. 线性表之顺序存储结构与链式存储结构 及 应用

    前言 我们常用的线性表是顺序存储结构和链式存储结构表示,是最基本.最简单.也是最常用的一种数据结构:一个线性表是由n个相同特性的数据的有限序列:比如java中的数组 ,链表:所以学习这两种结构表示是非 ...

  8. 线性表之顺序表与单链表的区别及优缺点

    这里比较的是基于C语言实现的顺序表与单链表,与其他语言的实现可能会有差异,但我相信语言是相通的,它们的实现机制应该也差不多. 1.What 什么是顺序表和单链表 ①顺序表: 顺序表是在计算机内存中以数 ...

  9. 线性表:2.线性表的顺序存储结构--顺序表及C语言实现

    逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为 线性表的顺序存储结构 . 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中, ...

最新文章

  1. 唯品会API网关设计与实践--转
  2. ios微信小程序下拉刷新怎么配_为什么他的下拉刷新是个动画效果?
  3. Netty实战 IM即时通讯系统(十二)构建客户端与服务端pipeline
  4. OSS 上传出现异常
  5. 模拟通信与数字信号区别
  6. 说说Asp.net 身份验证、授权
  7. TensorFlow入门篇(二):线性回归
  8. 三十五、 rsync工具介绍、rsync常用选项、rsync通过ssh同步
  9. Integrity Pro for mac(网站死链接清理)
  10. 批处理脚本一键重置mysql的root密码
  11. android开源播放器代码,github上十二款最著名的Android播放器开源项目
  12. KEIL5编译51单片机程序依赖包
  13. 因为计算机中丢失lua.dll,lua51.dll丢失修复
  14. 2022强网杯pwn部分wp
  15. 2022年上半年5月网络工程师试题及答案
  16. bzoj-4816,P3704 [SDOI2017]数字表格
  17. OSC 第 130 期高手问答 — 究竟什么才是微服务?_黄勇【摘选】
  18. ctfshow-菜狗杯-web(一)
  19. E08【选尺码】I'm looking for size 43
  20. 选购家用安防摄像头,考虑室内还是室外,无线还是有线

热门文章

  1. 牛顿开方法的算法及其原理
  2. Blockly开发入门指北
  3. 军用emm管控平台_黑龙江省手机管控平台联系方式,EMM管控软件
  4. python hackrf_HackRF实现ADS-B飞机信号跟踪定位
  5. react hooks之useCallback
  6. css 立体字效果-Contact us
  7. JavaScript应用——实现页面简单的日间/夜间模式切换
  8. Vue cli3 或 Vue cli4 配置多入口多页面问题(详解)
  9. 2016年终盘点:揭秘隐藏在互联网暗面项目的大事记
  10. 查到一个好用的汉字转拼音封装类