数据结构第5章数组与广义表.pptVIP

  • 6
  • 0
  • 约 46页
  • 2024-01-21 发布于北京
  • 举报
信息提取失败,麻烦您数据结构第5章数组与广义表.ppt

数据结构(C语言版)第5章数组与广义表本章主要知识点数组特殊矩阵的压缩存储稀疏矩阵广义表数组1.数组的定义数组是由类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称元素),每个元素受个线性关系的约束,每个元素在个线性关系中的序号称为该元素的下标,并称该数组为维数组,称为该数组的维数。特点:(1)数组中的数据元素具有相同数据类型。(2)数组是一种随机存取结构,给定一组下标,就可以访问与其对应的数据元素。(3)数组中的数据元素个数是固定的。一旦定义了数组,它的维数和元素数目也就确定了。数组中通常只有两种操作:(1)存取:给定一组下标,存取相应的数据元素;(2)修改:给定一组下标,修改相应的数据元素的值。2.数组的顺序表示数组一般都是采用顺序存储的方法来表示。数组通常有两种顺序存储方式:(1)行优先顺序(RowMajorOrder):将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面。对二维数组,按行优先顺序存储的线性序列为:(2)列优先顺序(ColumnMajorOrder):将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后,对二维数组,按列优先顺序存储的线性序列为:设有二维数组A=(aij)m×n,若每个元素占用L个存储单元,a11作为该数组的第一个元素,LOC[a11]表示元素a11的首地址,即数组的首地址。以“行优先顺序”存储:(1)第1行中的每个元素对应的(首)地址是:LOC[a1j]=LOC[a11]+(j-1)×L(2)第2行中的每个元素对应的(首)地址是:LOC[a2j]=LOC[a11]+n×L+(j-1)×L(3)第m行中的每个元素对应的(首)地址是:LOC[amj]=LOC[a11]+(m-1)n×L+(j-1)×L二维数组中任一元素aij的(首)地址是:LOC[aij]=LOC[a11]+[(i-1)×n+(j-1)]×L三维数组中任一元素aijk的(首)地址是:LOC(aijk)=LOC[a111]+[(i-1)×n×p+(j-1)×p+(k-1)]×Ln维数组中任一元素aj1j2…jn的(首)地址是:LOC[aj1j2…jn]=LOC[a11…1]+[(b2×…×bn)×(j1-1)+(b3×…×bn)×(j2-1)+…+bn×(jn-1-1)+(jn-1)]×L以“列优先顺序”存储:(1)第1列中的每个元素对应的(首)地址是:LOC[aj1]=LOC[a11]+(j-1)×L(2)第2列中的每个元素对应的(首)地址是:LOC[aj2]=LOC[a11]+m×L+(j-1)×L(3)第n列中的每个元素对应的(首)地址是:LOC[ajn]=LOC[a11]+(n-1)×m×L+(j-1)×L二维数组中任一元素aij的(首)地址是:LOC[aij]=LOC[a11]+[(i-1)×m+(j-1)]×L例若6行5列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储单元,则第3行第4列的元素(假定无第0行第0列)的地址是多少?解LOC(a34)=LOC[a11]+[(3-1)×6+(4-1)]×2=1000+[(3-1)×6+(4-1)]×2=1030特殊矩阵的压缩存储矩阵:是一个由m×n个元素排成的m行(横向)n列(纵向)的表。特殊矩阵是指元素值的排列具有一定规律的矩阵。常见的这类矩阵有:对称矩阵、下(上)三角矩阵、对角线矩阵等等。可以利用它的规律来进行压缩存储,即为多个值相同的元素只分配一个存储空间,对0元素不分配存储空间,因此就不用占用m×n那么多的空间。1对称矩阵若一个n阶方阵A=(aij)n×n中的元素满足性质:aij=aji其中,1≦i,j≦n且i≠j,则称A为对称矩阵。对称矩阵关于主对角线对称,因此只需存储上三角或下三角部分即可。原来需要n*n个存储单元,现在只需要n(n+1)/2个存储单元了,节约了n(n-1)/2个存储单元。用数组SA[n(n+1)/2]来压缩存储该对称矩阵:下三角中的元素aij,其特点是:i≥j且1≤i≤

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档