线性表

来源:互联网 发布:数据归一化处理方法 编辑:程序博客网 时间:2024/05/21 19:42

线性表

线性表(linear list)是最常用且最简单的一种数据结构。一个线性表是n个数据元素的有限序列。

若将线性表记为:
(a1, … ,ai-1, ai, ai+1, … ,an)
则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素;ai+1是ai的直接后继元素。

线性表中元素的个数n(n≥0)定义为线性表的长度,n=0时称为空表。在非空表中的每一个数据元素都有一个确定的位置,如a1是第一个数据元素,an是最后一个数据元素,ai是第i个数据元素,称i为数据元素ai在线性表中的位序。

线性表是一个相当灵活的数据结构,它的长度可以根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,还可以进行插入和删除操作等。

线性表的顺序表示和实现

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。

它的特点是,为表中相邻的元素ai和ai+1赋以相邻的存储位置LOC(ai)和LOC(ai+1)。由此,只要确定了存储线性表的起始位置,线性表中任一数据元素都可以随机存储,所以线性表的顺序存储结构是一种随机存取的存储结构

通常用数组来描述数据结构中的顺序存储结构

特点:线性表的顺序存储方式, 可以随机存取。

这里写图片描述

线性表的链式表示和实现

线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素。

为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。

这两部分信息组成数据元素ai的存储映像,称为结点(node)。

它包括两个域,其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。

特点:结点可以连续,可以不连续存储; 结点的逻辑顺序与物理顺序可以不一致; 表可扩充

这里写图片描述

链表和数组比较

链表:链表是一块不连续的动态空间,长度可变;链表需要按顺序检索节点,效率低;
链表的优点是可以快速插入和删除节点,大小动态分配,长度不固定。
链表不存在越界问题。
数组:数组是一快连续的空间,声明时长度就需要固定。
数组的优点是速度快,数据操作直接使用偏移地址。
数组有越界问题。

0 0
原创粉丝点击