1.开场白
线性表: 零个或多个数据元素的有限序列。比方说拔河比赛的某一方,线性表强调前方和后方的唯一性。若将线性表记为 (a1,…, a‘.1, at, a‘+1,…, an) ,则表中 a‘.1 领先于 剑, a, 领 先于 a,吨,称 a‘.1 是 a,的直接前驱元素, a‘+1是 a,的直接后继元素。当 1=1 , 2,…, 0-1 时, a,1 有且仅有一个直接后继,当 i=2, 3 ,…, 0 时, a,有且仅有一个直接前驱。比方说十二星座。
以线性表元素的个数 o (0)0) 定义为线性表的长度,当 0=0 时,称为空表。
在较复杂的线性表中 , 一个数据元素可以由若干个数据项组成。
2.线性表的抽象数据类型
线性表应该有一些什么 样的操作呢? 初始化,比较,清空,添加,删除等操作,也就是抽象的数据类型来有效完成。
我们对于 union 操作,用到了前面线性表基本操作 ListLength、GetE坠m、 LocateElem、 Listlnsert 等,可见,对于复杂的个性化的操作,其实就是把基本操作组合起来实现的。
2.1. 线性袤的顺序存储结构
雄性亵的顺序存储结构,指的是用一段地址连续的存储单元依次 存储线性褒的触据元素。
既然线性表的每个数据元素相同,那就可以用一个数组来表示。即把第一个数据元素存到数组下 标为 0 的位置中,接着把线性表相邻的元素存储在数组中相邻的位置。 随着数据的插入,我们线性表的长度开始变大,不过续性袤的当 前长度不能超过存储容量,即数组的长度
由上图代码可知:描述顺序存储结构需要三个属性:
1)存储空间的起始位置:数组 dara,色的存储位置就是存储空间的存储位置。
2)线性袤的最大存储容量: 数组长度 Ma.xSize。
3)线性表的当前长度: Jengtb.
两个概念"数组的长度"和"续性表的长度"需要区分一下。线性袤的长度是线性表中数据元素的个数,随着线性表插入和删除操作的进行, 这个量是变化的。
在任意时刻,线性表的长度应该小于等于数组的长度。
原文:https://www.cnblogs.com/rango0550/p/12061418.html