2. 数据结构-逻辑结构-线性表

前提知识回顾和关联

有了数据结构基本知识,数据结构是数据对象的逻辑结构+存储结构+运算(增删改查)。逻辑结构有集合、线性结构、树结构、图或网状结构。
显然线性表是数据逻辑结构的线性结构。它按照循序存储和链式存储(仅仅是分类标准,别混淆之前物理存储的概念)分为顺序表和链式表,链式表主要有单链表、双链表、循环链表、静态链表。


顺序表

地址连续的存储单元存储元素的表。由一个一维数组和一个序列长度构成。顺序表示意图
顺序表是一个数据结构,数据结构三元组是逻辑结构、存储结构、运算。它的逻辑结构就是线性结构,它的存储结构是顺序存储且是静态存储,导致不知道设置什么值合适(缺点1),它的运算包括“增删改查”。“增”就是插入,在任何一个位置插入都会导致后面所有数据元素往后移动一个地址(缺点2);“删”和“增”是相对的(缺点3);
基于缺点提出链表概念。

链表

  • 单链表
    两部分组成,前面是数据域(存储数据元素的位置),后面是指针域(存储指向的位置)。
    -单链表示意图从以上五个相连的“单元”可以看出,它的存储空间可以不是连续的,指针域内的指针可以确定位置。(可以理解为顺序表的指针直接指向下一个位置,且这个指针不能发生改变)
    链表依然是数据结构,都有三元组。逻辑结构依然是线性(因为都是表);存储结构是链式存储且是动态存储;“增删改查”运算运用改变指针的方式进行,避免了顺序表的弊端。
    单链表有关结点的概念:上述的单元就是一个结点;第一个结点中前面那个不是数据元素而是指针H,表示头结点,和我们常识相悖,为什么这里这样处理,原来是为了在链表相关编程下,不用分别空表的情况。第二个单元首元结点,也就是第一个存储数据元素的结点简称,对应存储的数据元素叫首元元素表头元素表尾元素也就好理解,分别为第一个被存储的数据元素和最后一个被存储的数据元素。对应着链表结构和图例进行理解
  • 双链表

双链表示意图
单指针变双指针,原理和单链表一致,对应着理解,不做赘述。

  • 循环链表
    包含循环双链表和循环单链表,指针头结点和尾结点进行指针相连。原理和单链表一致,也不做赘述。

静态链表

由于高级语言中没有指针类型,使用的一个二维数组模拟链表功能(为什么模拟,因为链表比顺序表优势更大,利用了它的原理,形式变了而已),功能上类似于单链表,但没有单链表的动态分配
需要注意的是它是存储空间是静态的,也就是我们不能确定形状为一个合适的形状,有顺序表的第一个缺点。


Thank for reading

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值