二维数组和广义表.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.3.3 稀疏矩阵的顺序存储表示和基本操作的实现  1.概念和定义   在一个体积很大的矩阵中,如果零元素的个数比非零元素的个数多很多,也就是说矩阵中大部分元素是零,则称这样的矩阵为稀疏矩阵 。 * * 第6章 二维数组和广义表 本章共2学时   1.一维数组   一维数组就是一个线性表。   设数组元素a[0]的地址为Loc(a 0),每个数据元素占用s个存储单元,则任一数组元素a[i]的存储地址Loc(a i)为:   Loc(a i)= Loc(a 0)+i*s (0≤i≤n-1)   一维数组中任一数据元素的存储地址可直接计算得到,因此,一维数组是一种随机存储结构。 6.1 二维数组概念和定义 2.二维数组的逻辑结构     其中,aj=(a1j, a2j, …,amj)(1≤j≤n)称为数组的列矢量, ai=(ai1, ai2, …,ain)(1≤i≤m)称为数组的行矢量。 Am×n = a11   a12  … a1n … … … … a21  a22 … a2n am1 am2 … amn   由于对数组一般不作插入和删除操作,也就是说,数组一旦建立,结构中的元素个数和元素间的关系就不再发生变化。因此,一般都是采用顺序存储的方法来表示数组。   通常有两种顺序存储方式:   (1)行优先顺序 将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。二维数组按行优先顺序存储的线性序列为:   a11 a12 … a1n  a21 a22 … a2n  …… am1 am2 … amn   在PASCAL、C语言中,数组就是按行优先顺序存储的。 6.2 二维数组的顺序存储结构   (2)列优先顺序 将数组元素按列向量排列,第j+1个行向量紧接在第j个行向量后面。二维数组按列优先顺序存储的线性序列为:   a11 a21 … a m1  a12 a22 … a m2  …… a1n a2n … amn    二维数组A[m][n]按“行优先顺序”存储在内存中,假设数组的下标从0开始,每个元素占L个存储单元。则元素a[ i ][ j ]的存储地址应是数组的基地址Loc(a00)加上排在a[ i ][ j ]前面的元素所占用的单元数。   Loc(aij)= Loc(a00)+(i*n+j)*L   例:对二维数组A=a[5][4]:   (1)计算数组A中的数组元素数目;   (2)若A的起始地址即Loc(a00)为2000,且每个元素占用4个存储单元,计算数组元素a[3][2]的内存地址。   解:  (1)数组A中的数组元素数目为:5*4=20个  (2)Loc(a32)= Loc(a00)+(i*n+j)*s    =2000+(3*4+2)*4    =2056   矩阵是一个二维数组,可以用行优先或列优先方法顺序存放到内存中. 当矩阵的阶数很大时将会占较多存储单元。而当里面的元素分布呈现某种规律时,这时,从节约存储单元出发,可考虑若干元素共用一个存储单元,即进行压缩存储。  6.3 矩阵的压缩存储 0 15 0 0 0 0 0 0 0 0 0 88 0 0 0 0 0 67 11 0 5 0 0 0 12 0 0 15 0 0 0 13 0 0 0 0 0 33 0 0 0 0 (a) (b) 0 0 0 0 0 0 0 0 0 0 8 0 7 0 0 8 0 0 0 0 0 8 0 0 8 0 0 0 0 8 8 0 0 0 8    1.为多个值相同的元素只分配一个存储空间; 2.值为零的元素不分配空间;   6.3.2 特殊矩阵的压缩存储   如果值相同的元素或者零元素在矩阵中的分布有一定的规律,则称此类矩阵为特殊矩阵。   1.三角矩阵 (1)上三角矩阵   矩阵上三角部分元素是随机的,而下三角部分元素全部相同(为某常数C)或全为0,这样的矩阵称为上三角矩阵。   (2)下三角矩阵   矩阵的下三角部分元素是随机的,而上三角部分元素全部相同(为某常数C)或全为0,这样的矩阵称为下三角矩阵。   三角矩阵如下图所示:   对于下三角矩阵,可采用压缩存储即只存储其上下三角中的元素和常数c,若元素aij(1≤i≤j≤n)存于B[k]中,则下三角矩阵的存储公式(行优先存储)为: k=i(i-1)/2+j-1 ... ... ... c c c 22 21 11 ... ... ... ... nn n2 n1 a a a

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档