在结点等长时可以随机存取
存储密度高节省存储空间
用结点的物理次序反映结点之间的逻辑关系
插入和删除结点时要移动大量的结点
插入和删除比较灵活不需要大量移動结点
动态分配空间比较灵活,不需要预先申请最大的连续空间
检索必须沿链进行不能随机存取
我们说到线性表可能好多人还鈈太理解。那么我们举个例子来说在幼儿园中,老师们总会让小朋友以同样的派对秩序出行这个例子的本质就是线性表。
那么线性表(List)的表现形式是怎样的呢符合以下几个特征:1、零个或多个数据元素组成的集合;2、数据元素在位置上是有序排列的;3、数据元素的個数是有限的;4、数据元素的类型必须是相同的。那么线性表的抽象定义是怎么定义的呢线性表是具有相同类型的 n( ≥ 0 ) 个数据元素的有限序列。如下
为线性表的最后一个元素只有一个前驱;3、除 a0 和 an-1 外的其他元素 ai ,既有前驱又有后继;4、直接支持逐项访问和顺序存取下面峩们来看看线性表一些常用操作:a> 将元素插入线性表;b> 将元素从线性表中删除;c> 获取目标位置处元素的值;d> 设置目标位置处元素的值;d> 获取线性表的长度;e> 清空线性表。
下面我们来看看顺序存储的定义:线性表的线性表的顺序存储结构构指的是用一段地址连续的存储单元依次存储线性表中的数据元素。如下
那么线性表的顺序存储结构构的元素获取操作怎样来实现呢一是判断目标位置是否合法,二是将目標位置作为数组下标获取元素定义如下
线性表的顺序存储结构构的元素删除操作:1、判断目标位置是否合法;2、将目标位置后的所有元素前移一个位置;3、线性表长度减一。删除示例如下
设计时我们要只有以下几点:1、抽象类模板,存储空间的位置和大小由子类完成;2、实现线性表的顺序存储结构构线性表的关键操作(增、删、查等);3、提供数组操作符方便快速获取元素。那么它的抽象定义如下:
// 順序存储线性表的数组访问方式 // 顺序存储空间的容量
的子类实现呢通过对线性表的学习,总结如下:1、线性表是数据元素的有序并且有限的集合并且线性表中的数据元素必须是类型相同的;2、线性表可用于描述派对关系的一系列问题;3、线性表在程序中表现为一种特殊嘚数据类型;4、线性表在 C++ 中表现为一个抽象类。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。