前言
看到很多人直接将顺序表等同于数组,认为顺序表就是数组,但这样做容易造成概念混淆。下面就对这两个概念进行解释,帮助大家进行区分。
什么是顺序表
在解释什么是顺序表之前,我们还需要了解一点基础知识。
数据结构
数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
线性表
线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。
线性表在逻辑上是线性结构,也就说是连续的一条直线,但是在物理结构上并不一定是连续的。
常见的线性表:顺序表、链表、栈、队列、字符串…
顺序表
顺序表,全名顺序存储结构,是线性表的一种。
顺序表不仅要求数据在逻辑上是连续的一条直线,还要求用一段物理地址连续的存储单元以次存储表中数据元素,一般情况下采用数组存储。
什么是数组
数组是相同数据类型的元素按一定顺序排列的的集合。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。
简单的说,数组是在物理空间中连续存储的相同数据类型的元素的集合。
可见,数组是一种顺序表,但不能说顺序表是数组。就像小学生是学生,那所有的学生都是小学生吗?
总结
- 数组是数据结构中顺序存储的物理结构,而顺序表是数据结构中的逻辑结构。> 逻辑结构:对操作对象的数学描述,描述的是数据元素之间的逻辑关系。例如,线性结构,树形结构,图形结构。它们都属于逻辑结构。> 物理结构:又称存储结构,数据的逻辑结构在计算机内存中的存储方式称为数据的物理结构(又称映射)。> > > 实际上,同一种逻辑结构可以有多种存储结构,在不同的存储结构中,实现同一种运算的算法可能不同。> > 逻辑结构、存储结构和运算三者之间的关系:> > > > 将逻辑结构映射为存储结构时,需要存储逻辑结构中的:> > > - 所有元素> - 元素之间的关系> > 此用引用链接:逻辑结构与物理结构
- 我们可以用数组实现顺序表,但我们同样可以用数组实现二叉树、队列等结构,因此不能直接认为顺序表就是数组。
版权归原作者 叫我小秦就好了 所有, 如有侵权,请联系我们删除。