精华内容
下载资源
问答
  • 顺序存储结构和链式存储结构的优缺点比较

    万次阅读 多人点赞 2018-10-09 17:45:34
    顺序存储结构和链式存储结构的比较 优缺点 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大(=1),存储空间利用率高。 缺点:...

    顺序存储结构和链式存储结构的比较

    优缺点

    1. 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
      • 优点:存储密度大(=1),存储空间利用率高。
      • 缺点:插入或删除元素时不方便。
    2. 链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
      • 优点:插入或删除元素时很方便,使用灵活。
      • 缺点:存储密度小(<1),存储空间利用率低。

    使用情况

    • 顺序表适宜于做查找这样的静态操作;
    • 链表宜于做插入、删除这样的动态操作。
    • 若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
    • 若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。

    比较

    顺序表与链表的比较

    • 基于空间的比较

      • 存储分配的方式
        • 顺序表的存储空间是静态分配的
        • 链表的存储空间是动态分配的
      • 存储密度 = 结点数据本身所占的存储量/结点结构所占的存储总量
        • 顺序表的存储密度 = 1
        • 链表的存储密度 < 1
    • 基于时间的比较

      • 存取方式
        • 顺序表可以随机存取,也可以顺序存取
        • 链表是顺序存取的
      • 插入/删除时移动元素个数
        • 顺序表平均需要移动近一半元素
        • 链表不需要移动元素,只需要修改指针

     

    内容转载自:https://blog.csdn.net/VonSdite/article/details/78240594?locationNum=9&fps=1

    展开全文
  • 线性表之顺序存储结构和链式存储结构

    万次阅读 多人点赞 2018-09-28 14:17:06
    顺序存储结构和链式存储结构有所不同,具体区别如下表所示: 通过上面的对比,可以得出一些经验性的结论: 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜...

    线性表包括顺序表和链表,其中链表又包括单链表、循环链表、双向链表。

    顺序存储结构和链式存储结构有所不同,具体区别如下表所示:
    在这里插入图片描述

    线性表是一种逻辑结构,相同数据类型的n个数据元素的有限序列,除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。

    线性表的特点:

    1. 元素个数有限
    2. 逻辑上元素有先后次序
    3. 数据类型相同
    4. 仅讨论元素间的逻辑关系

    注:线性表是逻辑结构,顺序表和链表是存储结构。
    在这里插入图片描述

    通过上面的对比,可以得出一些经验性的结论:

    • 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链表结构。
    • 当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致长度,用顺序存储结构效率会高很多。

    顺序表里面元素的地址是连续的,链表里面节点的地址不是连续的,是通过指针连起来的。

    顺序存储:

    顺序存储的优点:

    • 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
    • 可以快速地存取表中任意位置地元素

    顺序存储的缺点:

    • 插入和删除操作需要移动大量元素
    • 当线性表长度变化较大时,难以确定存储空间的容量
    • 容易造成存储空间的”碎片“

    链式存储:

    比起顺序存储结构每个数据元素只需要存储一个位置就可以。现在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称为指针或链。这两部分信息组成数据元素称为存储映像,称为节点(Node)。

    链表的每个节点中只包含一个指针域,则称为单链表。

    头指针和头结点

    头指针是指链表指向第一个节点的指针,若链表有头节点,则是指向头结点的指针。头指针具有表示作用,所以常用头指针冠以链表的名字。无论链表是否为空,头指针均不为空。头指针是链表的必要元素。

    在这里插入图片描述
    上图中的头结点可以存在也可以不存在,但是头指针必须有。

    头结点是为了操作的统一和方便而设立的,放在第一个元素的节点之前,其数据域一般无意义通常为空,但是指针域指向第一个元素。有了头结点,对在第一元素节点前插入结点和删除第一结点起操作与其它结点的操作就统一了。头结点不一定是链表的必要元素。

    单链表的创建
    单链表和顺序存储结构不一样,他不像顺序存储结构数据那么集中,它的数据可以是分散在内存各个角落的,它的增长也是动态的。对于每个链表来说,它所占用空间的大小和位置是不需要预先分配划定的,可以根据系统的情况和实际的需求即时生成。

    头插法:

    头插法从一个空表开始,生成新结点,读取数据存放到新结点的数据域中,然后奖新结点插入到当前链表的表头上,直到结束为止。
    简单来说,就是把新加进的元素放在表头后的第一个位置:

    • 先让新节点的next指向头节点之后
    • 然后让表头的next指向新节点
      用现实环境模拟的话就是插队的方法,始终让新节点插在第一的位置上。

    静态链表
    对于线性链表,也可用一维数组来进行描述。这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构。用数组描述的链表,即称为静态链表。

    这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。其实和顺序存储结构类似来分配空间,插入元素时,元素依次放在后面,但是插入的元素的游标域要根据插入位置来改变。

    假如有如上的静态链表S中存储着线性表(a,b,c,d,f,g,h,i),Maxsize=11,如图所示,要在第四个元素后插入元素e,方法是:先在当前表尾加入一个元素e,即:S[9].data = e;然后修改第四个元素的游标域,将e插入到链表中,即:S[9].cursor = S[4].cursor; S[4].cursor = 9;,接着,若要删除第7个元素h,则先顺着游标链通过计数找到第7个元素存储位置6,删除的具体做法是令S[6].cursor = S[7].cursor。

    关于静态链表:

    • 我们对数组的第一个和最后一个元素做特殊处理,他们的data不存放数据。
    • 我们通常把未使用的数组元素称为备用链表。
    • 数组的第一个元素,即下标为0的哪个元素的cur(游标)就存放备用链表的第一个结点的下标。
    • 数组的最后一个元素,即下标为MAXSIZE-1的cur则存放第一个有数值的元素的下标,相当于单链表中的头结点作用。
    展开全文
  • [size=16px]]刚开始学数据结构,对于静态链表的存储结构书上也没有明确给出。以下是个人理解: 既然静态链表就是结构体数组,那数组肯定是顺序存储结构,所以静态链表整体上应该是顺序存储结构。但静态链表存储的...
  • 一:线性表的顺序存储结构 1.定义 2.顺序存储示意图如下所示: 3.编号地址 4.存储位置公式 5.存取操作时间性能 6.随机存储结构 7.时间复杂度 (1)对于存取操作 (2)对于插入和删除操作 8. 使用场景 二...

    目录:

    一:线性表的顺序存储结构

    1.定义 

    2.顺序存储示意图如下所示:

    3.编号地址

    4.存储位置公式

    5.存取操作时间性能 

    6.随机存储结构

    7.时间复杂度

     (1)对于存取操作

     (2)对于插入和删除操作

    8. 使用场景

    二:线性表的链式存储结构

    1.什么是链表

    2.结点

    (1) 数据域

    (2)指针域

    3.头指针&头结点

    (1)头指针

    (2)头结点

    4.单链表

    单链表的时间复杂度

    (1)对于存取操作

    (2)对于插入和删除操作

    5.线性表和单列表那个好

    6. 循环链表

    7.单链表和循环链表的区别

    (1)单链表判断条件

    (2)循环链表判断条件

    8.双向链表


    一:线性表的顺序存储结构

    1.定义 

    的是用一段地址连续的存储单元依次存储线性表的数据元

    2.顺序存储示意图如下所示:

    线性表

    3.编号地址

    存储器中的每个存储单元都有自己的编号,这个编号称为地址

    4.存储位置公式

    每个数据元素,不管它是整型,实型还是字符型,它都是需要占用一定的存储单元空间的

    假设占用的是 c 个存储单元,那么对于线性表的第 i 个数据元素  存储位置都可以由  推导算出:

    5.存取操作时间性能 

    上述推导公式具体内容如下图所示:

    通过该公式,就可以随时算出线性表中任意位置的地址

    不管是第一个还是最后一个,都是相同的时间

    也即对于线性表每个位置存入或者取出数据

    对于计算机来说都是相等的时间,也就是一个常数时间

    因此,线性表的存取操作时间性能为 

    6.随机存储结构

    我们通常将存取操作具备常数性能)的存储结构称为随机存储结构

    7.时间复杂度

     (1)对于存取操作

    线性表的顺序存储结构,对于存取操作,其时间复杂度为 

    因为元素位置可以直接计算得到

     

     (2)对于插入和删除操作

    对于插入和删除操作,其时间复杂度

    因为插入或删除后,需要移动其余元素

    8. 使用场景

    因此,线性表顺序存储结构比较适用于元素存取操作较多增删操作较少的场景

     

    二:线性表的链式存储结构

    1.什么是链表

    一个或多个结点 组合而成数据结构称为链表

    2.结点

    结点 一般由两部分内容构成:

    (1) 数据域

    存储真实数据元素

    (2)指针域

    存储下一个结点的地址(指针)

    3.头指针&头结点

    头结点的数据可以存储任何信息,其指针域存储指向第一个结点的指针(即指向头指针

    (1)头指针

    一般把链表中的第一个结点称为 头指针,其存储链表的第一个数据元素

    (2)头结点

    为了能更加方便地对链表进行操作,会在单链表的第一个结点(即头指针)前设一个结点,称为 头结点

    4.单链表

    线性表的顺序存储结构(即数组)中,其任意一个元素的存储位置可以通过计算得到,因此其数据读取的时间复杂度为 

    单链表的时间复杂度

    (1)对于存取操作

    而对于单链表结构,假设需要获取第 i 个元素,则必须从第一个结点开始依次进行遍历,直到达到第 i 个结点。因此,对于单链表结构而言,其数据元素读取的时间复杂度为 

    ​​​​​​​(2)对于插入和删除操作

    而对单链表结构来说,对其任意一个位置进行增删操作,其时间复杂度为 

    因为需要先进行遍历找到目标元素,对头指针的增删操作其时间复杂度为 

    5.线性表和单列表那个好

    因此,如果只对一个元素进行增删操作,两种结构并不存在优劣之分,但如果针对多个数据进行增删,由于线性表每一次增删都需要移动 n-i 个元素,即每个元素的操作都为 

    而单链表只在第一次遍历定位目标元素时为

    对后续元素的增删只需简单地赋值移动指针即可,其时间复杂度为

    总结:

    对于插入或删除数据越频繁的操作,单链表的效率就越明显

    6. 循环链表

    将单链表中的终端结点指针端空指针改为指向头结点

    就使整个单链表形成一个环

    这种头尾相接的单链表称为单循环链表,简称 循环链表(circular linked list)

    循环链表不一定需要头结点​​​​​​​

    7.单链表和循环链表的区别

    为了使空链表非空链表处理一致,我们通常设一个头结点(循环链表不一定需要头结点)

    主要差异就在于循环的判断条件上

    (1)单链表判断条件

    为尾结点是否指向空

    p->next = NULL

     

    (2)循环链表判断条件

    当前结点是否指向头结点

    p->next = head

    是则当前结点为尾结点

    8.双向链表

    双向链表(double linked list):在单链表每个结点中再设置一个指向其前驱结点的指针域

    展开全文
  • 1、链表存储结构的内存地址不一定是连续的,但顺序存储结构的内存地址一定是连续的 2、链式存储适用于在较频繁地插入、删除、更新元素是,而顺序存储结构适用于频繁查询时使用 顺序比链式节约空间,是因为链式结构...

    区别

    1、链表存储结构的内存地址不一定是连续的,但顺序存储结构的内存地址一定是连续的

    2、链式存储适用于在较频繁地插入、删除、更新元素是,而顺序存储结构适用于频繁查询时使用

    顺序比链式节约空间,是因为链式结构每一个节点都有一个指针存储域。

    顺序支持随机存取,方便操作。

    链式的要比顺序的方便,快捷。

    展开全文
  • 链式存储结构

    千次阅读 2019-09-20 16:27:14
    线性表的链式存储结构: 为什么采用链式存储结构这种数据结构? –》因为顺序存储结构插入或删除元素时候会涉及大量元素移动,非常影响效率。 因此引入了链式存储结构为了弥补顺序存储结构效率上的问题。 链式存储...
  • 顺序存储结构和链式存储结构的优缺点

    万次阅读 多人点赞 2017-10-08 09:21:35
    顺序存储结构和链式存储结构的优缺点 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上, 链式存储比顺序存储要高。 (一)顺序存储结构和链式存储结构的优缺点比较,以及使用情况。 ...
  • 顺序存储结构和随机存储结构

    千次阅读 2013-08-07 14:40:04
    顺序存储结构:   在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构.  顺序存储结构存储结构类型中的一种,该结构是把逻辑上相邻的节点存储在物理位置上相邻的存储...
  • 索引存储结构

    千次阅读 2019-07-26 20:13:23
    四种数据存储结构---顺序存储 链接存储 索引存储 散列存储 转自:https://www.cnblogs.com/fengty90/p/3768826.html 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存...
  • 队列、队列的顺序存储结构、链式存储结构
  • 2、顺序存储结构: 三个重要属性:  存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置  线性表的最大存储容量:数组data的长度MAXSIZE(这里是20)  线性表的当前长度:length 顺序存储...
  • 数据结构-存储结构

    千次阅读 2017-12-17 10:29:39
    数据结构-存储结构
  • 数据结构~16.图的基本概念和存储结构

    万次阅读 多人点赞 2020-08-14 20:47:13
    线性化二叉树 ...前言        在上一篇文章里面,我们使用了自定义的栈来代替了系统栈,通过循环实现了二叉树的遍历,提升了效率。...对于二叉链表的存储结构,n个结点的二叉树有 n + 1
  • 逻辑结构:数据的逻辑结构是对数据之间关系的描述,与存储结构无关,同一种逻辑结构可以有多多种存储结构。 逻辑结构主要分为两大类:线性存储结构和非线性存储结构 线性存储结构是数据元素有序集合,数据结构之间...
  • Oracle存储结构

    万次阅读 2017-07-07 16:32:18
    Oracle存储结构
  • 顺序存储在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。特点:随机存取表中元素。插入和删除操作需要移动元素。链接存储在计算机中用一组任意的存储单元存储线性表的...
  • 逻辑结构和存储结构

    千次阅读 2019-01-23 12:07:14
    百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。结合今天在复习过程中新的理解,主要总结一下逻辑结构和存储结构。 什么是...
  • 顺序存储结构

    千次阅读 2018-02-01 18:41:59
    2. 顺序存储结构 答:线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。     3. 顺序存储结构需要三个属性: ■ 存储空间的起始位置:数组data,它的存储位置就是存储空间...
  • 线性表有顺序存储结构与链式存储结构两种表示方式,本章主要介绍线性表的顺序存储结构的表示方式。 线性表的顺序表示是指用一组地址连续的存储单元依次存储线性表的数据元素。其原理大致如下图所示: ![这里写图片...
  • 数据结构中存储结构分析

    千次阅读 2018-09-06 14:37:53
    数据结构分为逻辑结构和存储结构 逻辑结构与数据的存储没有关系,是独立于计算机的,是从具体问题抽象出来的数学模型。 存储结构只有顺序存储结构和链式存储结构。 1:栈 顺序栈 (top用来存放栈顶元素的下标...
  • PostgreSQL 数据存储结构

    千次阅读 2018-07-16 17:59:23
    PostgreSQL 数据存储结构分为:逻辑储存和物理存储 逻辑存储结构是KingbaseES内部的组织和管理数据的方式。 物理存储结构是操作系统中组织和管理数据的方式。 逻辑存储结构适用于不同的操作系统和硬件平台。 逻辑...
  • 顺序存储结构和链式存储结构的比较优缺点顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大(=1),存储空间利用率高。缺点:插入或...
  • 二叉树的存储结构

    千次阅读 2019-07-15 18:36:46
    一、顺序存储结构 二叉树的顺序存储结构是指用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储在某个数组下标为i-1的分量中,然后通过一些方法...
  • 数据结构:图的存储结构之邻接表

    万次阅读 多人点赞 2013-04-30 00:05:05
    对于图来说,邻接矩阵是不错的一种图存储结构,但是我们也发现,对于边数相对顶点较少的图,这种结构是存在对存储空间的极大浪费的。因此我们考虑另外一种存储结构方式:邻接表(Adjacency List),即数组与链表相...
  • 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 索引结构和散列结构适用在外存与内存交互结构。 顺序存储:在计算机中用一组地址连续的存储单元依次...
  • 《数据结构有哪些》一节讲到,数据的存储方式可分为线性表、树和图三种存储结构,而每种存储结构又可细分为顺序存储结构和链式存储结构。数据存储方式如此之多,针对不同类型的数据选择合适的存储方式是至关重要的。...
  • 物理存储结构

    千次阅读 2016-11-25 08:54:50
    物理存储结构简介RDBMS 的特点之一是逻辑数据结构(如表、 视图和索引)与物理存储结构的独立性。由于物理结构和逻辑结构是分开的,您可以管理数据的物理数据存储,而不会影响对逻辑结构的访问。例如,重命名数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,969
精华内容 95,187
关键字:

存储结构