顺序表 链表

作者: wangchuang2017 | 来源:发表于2017-10-10 22:18 被阅读1次

存储分配方式、时间性能、空间性能

顺序表与链表的比较

空间比较、时间比较、语言比较

存储分配方式比较

Ø顺序表采用顺序存储结构,即用一段地址连续的存储单元依次存储线性表的数据元素,数据元素之间的逻辑关系通过存储位置来实现。

Ø单链表采用链接存储结构,即用一组任意的存储单元存放线性表的元素。用指针来反映数据元素之间的逻辑关系。

时间性能比较

时间性能是指实现基于某种存储结构的基本操作(即算法)的时间复杂度。

按位查找:

Ø顺序表的时间为(1),是随机存取;

Ø单链表的时间为(n),是顺序存取。

插入和删除:

Ø顺序表需移动表长一半的元素,时间为(n);

Ø单链表不需要移动元素,在给出某个合适位置的指针后,插入和删除操作所需的时间仅为(1)。

空间性能比较

空间性能是指某种存储结构所占用的存储空间的大小。

定义结点的存储密度:

存储密度=数据域占用的存储量/整个结点占用的存储量

结点的存储密度:

Ø顺序表中每个结点的存储密度为1(只存储数据元素),

Ø单链表的每个结点的存储密度<1(包括数据域和指针域),有指针的结构性开销。

整体结构:

Ø顺序表需要预分配存储空间,如果预分配得过大,造成浪费,若估计得过小,又将发生上溢;

Ø单链表不需要预分配空间,只要有内存空间可以分配,单链表中的元素个数就没有限制。

空间比较:

(1) 顺序表空间静态分配;链表空间动态分配

(2)顺序表的存储密度 = 1;链表的存储密度 < 1。

时间比较:

(1)顺序表可随机存取,也可顺序存取;链表只能顺序存取

(2)插入/删除时,顺序表平均移动一半左右元素;链表不需移动元素,只修改指针。若插入/删除仅在表的两端,宜采用带尾指针的循环链表。

语言比较:

顺序表实现简单:数组;动态链表:指针;静态链表:数组

相关文章

  • 线性表之顺序表和链表(单/双链表,单/双循环链表)

    线性表按存储方式分为顺序表和链表两种,其中链表又分为单链表,循环链表,双链表,双向循环链表。 顺序表 顺序表采用顺...

  • 数据与算法结构

    线性表 顺序表 链表(物理上离散,逻辑上连续) 链表的类别 单链表 循环链表 双链表 链表的操作 顺序表与链表的比...

  • 顺序表和链表的区别

    参考:线性表和链表的区别 注:参考文中的‘线性表’准确的说应该是’顺序表‘,链表与顺序表都是线性表。 顺序表:顺序...

  • 算法

    01 顺序表API设计 顺序表遍历 顺序表容量可变 02 单向链表API设计 遍历 03 双向链表API设计 04...

  • 带头结点的链表

    1、链表和顺序表 链表是很常见的数据结构,链表总是会和线性顺序表来比较。 1.1、顺序表 具有随机存储的特性,给定...

  • 线性表总结

    线性表总结 顺序表和链表的定义 链表的结构解析 顺序表类型定义 例 单链表的存储结构定义 例 链表的结构解析 单链...

  • 数据结构-双向链表

    (一)什么是链表? 链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 数据结构-单向链表

    一、线性表 线性表可以分为: 顺序表(数组) 链表(单向链表、双向链表、循环链表) 二、链表 链表是一种链式存储的...

  • 2018-07-09栈和队列的概念

    链表的作用?顺序表和链表都是线性表,存线性的数据;顺序表连续存放,链表存放是离散的。那么对于线性数据如何利用呢?—...

网友评论

    本文标题:顺序表 链表

    本文链接:https://www.haomeiwen.com/subject/sjabyxtx.html