线性表 数组链表

线性表 数组链表

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。即在计算机的缓存,内存,硬盘中如何组织管理数据的。重点在结构上,是按照什么结构来组织管理数据。

数据结构分为:

  • 逻辑结构 :思想上的结构–>线性表(数组,链表),图,树,栈,队列
  • 物理结构 :真实结构–>紧密结构(顺序结构),跳转结构(链式结构)

线性表

线性表的逻辑结构如图所示:

0
1
2
3
4

线性表是n个类型相同数据元素的有限序列,通常记作(a0,a1,,,ai-1,ai,ai+1,,,,,an-1)

特点

  1. 相同数据类型

在线性表的定义中,我们看到从a0到an-1的n个数据元素是具有相同属件的亓素。

例如都是数字(1,2,3,4,5,6),也可以是宇符(A,B,…,Z),也可以是具有更复杂结构的数据元素,例如用户、商品等。

相同数据类型意味着在内存中存储时,每个元素会占用相同的内存空间,便于后续的查询定位。

  1. 序列(顺序性)

线性表的相邻数据元素之间存在若序偶关系。

即ai-1是ai的直接前驱,则ai是ai-1的直接后续;同时ai又是ai+1的直接前驱,ai+1是ai的直接后续。

唯一没有直接前驱的元素a0 一端称为表头,唯一没有后续的元素an-1一端称为表尾。

除了表头和表尾元素外,任何一个元素都有且仅有一个直接前驱和直接后继。

  1. 有限

线件表中数据元素的个数n定义为线性表的长度, n是个有限值。

扫描二维码关注公众号,回复: 13367511 查看本文章

当n=0时线性表为空表。

在非空的线性表中每个数据元索在线性表中都有唯一确定的序号,例如a0的序号是0 ,ai的序号是i。

在一个具有n>0个数据元素的线性表中,数据元素序号的范围是[0, n-1]。

线性表的逻辑结构和物理结构

线性表逻辑结构,如果对应的真实结构的紧密结构—>典型就是数组

例如银行排队中在柜台前排队

数据 data1 data2 data3 data4
索引 0 1 2 3
地址 1000+4*0 1000+4*1 1000+4*2 1000+4*3
  • 优点:寻址快,可直接查找元素块

  • 缺点:删除和增加元素效率低,会影响操作元素后面的所有元素

线性表逻辑结构,如果对应的真实结构的跳转结构—>典型就是链表:

例如银行排队中的叫号模式

单向链表

在这里插入图片描述

双向链表

在这里插入图片描述

循环链表

在这里插入图片描述

  • 优点:删除、插入元素效率高,直接修改前后元素中的地址部分
  • 缺点:查询元素效率低

猜你喜欢

转载自blog.csdn.net/m0_46530662/article/details/119724623