- 3
- 0
- 约3.01千字
- 约 21页
- 2022-04-07 发布于北京
- 举报
3.5 其他线性结构-----数组和串1、 数组的定义是线性表在含义上的扩展:表中的数据元素本身也是一个数据结构。是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前驱和多个直接后继。 2、二维数组? 二维数组Am,n可视为由m个行向量组成的向量,或由n个列向量组成的向量。二维数组中的每个元素aij既属于第i行的行向量,又属于第j列的列向量。 3、数组的顺序表示和实现1)以行序为主序? 将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。【例】二维数组Am,n的按行优先存储的线性序列为:? a00,a01,…,a0,n-1,a10,a11,…,a1,n-1,…,am-1,0,am-1,1,…,am-1,n-1; 元素aij的存储位置: LOC[aij]=LOC[a00]+(n*i+j)*S 每个数据元素占S个存储单元 ; LOC[a00]是a00的位置,也称基地址;3、数组的顺序表示和实现2)以列序为主序? 将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量后面。【例】二维数组Am,n的按列优先存储的线性序列为:? a00,a10,…,am-1,0,a01,a11,…,am-1,1,…,a0,n-1, a1,n-1,…,am-1,n-1; LOC[aij]=LOC[a00]+(m*j+i)*S4、矩阵的压缩存储矩阵中非零元素呈某种规律分布或者矩阵中出现大量的零元素的情况下,为了节省存储空间,我们可以对这类矩阵进行压缩存储:A、即为多个相同的非零元素只分配一个存储空间;B、对零元素不分配空间。4、矩阵的压缩存储一)、特殊矩阵 指非零元素或零元素的分布有一定规律的矩阵。常见的有对称矩阵、三角矩阵和对角矩阵等。4、矩阵的压缩存储(1)对称矩阵 在一个n阶方阵A中,若元素满足下述性质:?? aij=aji (i≥0,j≤n-1) 则称A为对称矩阵。4、矩阵的压缩存储(2)对称矩阵的压缩存储? 对称矩阵中的元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间。这样,则可将n2个元素压缩存储到n(n+1)/2个单元中,大致能够节约近一半的存储空间。 aija00a10a11a20a21a22a30……a42a43a445012111387214191161023sk012……n(n+1)/24、矩阵的压缩存储二维数组aij与一维数组sk之间存在着一一对应的关系:(行主序、下三角存储方式)下标以0开始对于三角矩阵的压缩存储于上述相似。 5、稀疏矩阵的压缩存储稀疏矩阵 设矩阵Amn中有t个非零元素,若t远远小于矩阵元素的总数(即tm×n),则称A为稀疏矩阵。三元组表? 将表示稀疏矩阵的非零元素的三元组按行优先(或列优先)的顺序排列(跳过零元素),并依次存放在向量中,这种稀疏矩阵的顺序存储结构称为三元组表。 为了表示唯一性,除了每一个非零元素用一个三元组表示外,在所有表示非零元素的三元组之前再添加一个三元组:(I,J,t) 其中I表示稀疏矩阵的总行数,J表示稀疏矩阵的总列数,t表示稀疏矩阵中非零元素的个数。【例】下图(a)所示的稀疏矩阵A的三元组表表示见图(b)。 4540212203247032516、串(String)的基本概念串是一种特殊的线性表,是零个或多个字符组成的有限序列。一般记为:? S=“a0a1……an-1” 其中: ? ①S是串名; ? ②双引号括起的字符序列是串值; ③将串值括起来的双引号本身不属于串,它的作用是避免串与常数或与标识符混淆。?【例】“123”是数字字符串,它不同于整常数123;?【例】“xl”是长度为2的字符串。? ④ai(0≤i≤n-1)可以是字母、数字或其它字符;? ⑤串中所包含的字符个数称为该串的长度。6、 串(String)的基本概念子串和主串? 串中任意个连续字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。? 通常将子串在主串中首次出现时,该子串首字符对应的主串中的序号定义为子串在主串中的序号(或位置)。 【例】设A和B分别为? A=This is a string?? B=is? 则B是A的子串,B在A中出现了两次。其中首次出现对应的主串位置是3。因此称B在A中的序号(或位置)是3。注意:? ①空串是任意串的子串;? ②任意串是其自身的子串。 7、串的基本运算 对于串的基本运算,很多高级语言均提供了相应的运算符或标准的库函数来实现。 为叙述方便,先定义几个相关的变量:? char s1[20]=d:\datastruture; char s2[20]=string.c; char s3[30]; char *p;? int result;下面以C语言中串运算介绍串的基本运算。 1)、求
原创力文档

文档评论(0)