0
点赞
收藏
分享

微信扫一扫

数据结构与算法01-线性表概述

英乐 2022-03-12 阅读 91

文章目录

1.线性表的定义

  1. 定义
    线性表是由n(n>=0)个性质相同的数据元素组成的有限序列,n称为线性表的长度。对于非空线性表,具有唯一 一个“第一个”节点,即头节点,它没有直接前驱,仅有一个直接后继节点;具有唯一 一个“最后一个”节点,即终端节点或尾节点,它没有直接后继,仅有一个直接前驱;其余内部各个节点都有一个直接前驱和一个直接后驱。通俗来说,线性表就是元素之间的逻辑关系是线性的。举个不恰当的例子,线性表中的元素,就像是潜伏的特务,每个元素只有下级的联系方式,而自己的联系方式只有上级才有,所有它只能与下级联系与被上级联系,而不能与其他的元素联系,而头节点就是特务的最大头目,只有下级没有上级,而尾节点就是特务中最小的小喽啰,只有上级,没有下级。

  2. 特点
    同一线性表中元素类型相同,而且是长度有限的。最为重要的是元素直接的逻辑关系是线性的。

2.顺序表和链表

  1. 定义
    顺序表和链表都是线性表,但根据线性表在内存中的储存形式,将其分为了顺序表和链表。
    (1)顺序表:顺序表是用一组地址连续的存储单元依次存储线性表中的各元素,通过位置来表示数据元素之间的线性逻辑关系。也就是说,在顺序表中逻辑上相邻的元素在物理位置上也是相邻的。另外,如果确定了每个元素所占的存储单元和第一个元素的存储位置,那么就可以计算出任意元素所在的位置。
    (2)链表:链表是一组任意的存储单元存储线性表中的各元素,通过指针来表示数据元素之间的线性逻辑关系。也就是说链表中逻辑上相邻的数据元素在物理位置上并不相邻。为了表示元素之间的线性逻辑关系,需要额外的信息来指示后继元素的存储位置。这样每个节点包括两个域——数据域和指针域,前者存放数据本身的信息,后者存放后继节点的位置信息。最后一个元素没有后继,它的指针域为空,在算法上用null表示。
    以下是序列A-B-C-D-E-F-G分别在顺序表和链表中的存储示意图。

顺序表在内存中的存储示意图:
在这里插入图片描述
链表在内存中的存储示意图:
在这里插入图片描述
单链表示意图:
在这里插入图片描述

举报

相关推荐

0 条评论