武汉软件工程职业学院数据结构讲义第07讲 数组.docVIP

武汉软件工程职业学院数据结构讲义第07讲 数组.doc

  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文档。上传文档
查看更多
武汉软件工程职业学院数据结构讲义第07讲 数组

第二章线性表和数组 第二章线性表和数组 第七 第七讲 数组 1.掌握数组的基本概念及数组的顺序存储结构。 2.了解并熟悉特殊矩阵的压缩存储。 3.掌握稀疏矩阵的三元存储。 教学重点: 数组的概念及顺序存储结构。 稀疏矩阵的转置矩阵。 教学难点: 稀疏矩阵的转置矩阵 授课内容 2.6 数组 2.6.1 数组的基本概念 数组是一种常用对数据结构,几乎所有的程序设计语言都把数组类型设定为固有类型。计算机系统的内存是连续的空间,为了方便的存取处理大量的相关性数据,我们定义一种“连续的存储区域”,并使用一个名称指向此区域的起点,通过名称及偏移的方式,可以很容易的存取到该区域内的数据,此即为数组。 数组 是由下标(index)和值(value)组成的序对(indexvalue pairs)集合。简单地讲,数组就是按一定格式排列起来的一列同一属性的项目,是相同类型的数据元素的集合。我们经常使用数组来存放一连串数据类型相同的数据。因此,数组具有两个特性是: 1. 数组中的元素间的地址是连续的。 2. 数组中所有元素的数据类型是相同的。 数组的类型有一维数组A[10]、二维数组A[5][6]、三维数组A[3][5][5]、多维数组等。 数组元素 在数组中,对于每组有定义的下标,都存在一个与其相对应的值,这个值通常称为数组元素。 二维数组:每一行都是一个线性表,每一个数据元素既在一个行表中,又在一个列表中。在c语言中,其被定义为: ELEMTP arrayname[row][col]; 在二维数组中,每个元素都受到行关系和列关系的约束,例如有一个而外数组A[m][n],对于第i行第j列的元素A[i][j],A[i][j+1]是该元素在行关系中的直接后继元素;而A[i]+1[j]是该元素在列关系中的直接后继元素。所以,可以把二维数组看成是一个一维数组,它有row个元素,每个数据元素又是一个col个数据元素的一维数组。 对数组一般讨论下面两种运算: 给定一组有定义的下标,存取相应的数据元素; 给定一组有定义的下标,修改相应数据元素(或其中的某个数据项)的值。 2.6.2 数组的顺序存储结构 数组是一顺序存储方式在计算机中的,而随机存取是顺序存储结构的主要特征。大部分高级语言采用以行序为主的存储方式,如图2-6-1(a)所示,(如PASCAL 、C等);但在有的语言(如FORTRAN)中采用的是以列序为主的存储方式,如图2-6-1(b)所示。 在C语言中,数组中任一元素A[i][j]的存储位置可用下列公式计算: LOC(A[i][j])=LOC(A[0][0])+(i*col+j)*L其中,LOC(A[0][0])为数组的起始位置,L每个数据元素所占存储单元个数。 由于在定义数组时,LOC(A[0][0])、L和col是已知的,因此可以根据上式计算出任一元素的存储地址,实现随机存取。 2.6.3 特殊矩阵的压缩存储 矩阵在科学与工程计算机中有广泛的应用。在用高级语言编程中,通常用二维数组来表示矩阵。这样,利用上面的地址计算公式可以快速访问矩阵中的每个元素。然而,实际应用中会遇到一些特殊的矩阵,所谓特殊矩阵,是指矩阵中值相同的元素或着零元素的部分有一定的规律。例如,对称矩阵、三角矩阵和三对角矩阵都是特殊矩阵。 若一个n阶矩阵A中的元素满足:Aij=Aij(1≤ i≤ n ,1≤ j ≤ n)则称A为对矩阵;当一个方阵的主对角线以上或以上的所有元素皆为零时,该矩阵为三角矩阵;除了主对角线上和直接在主对角线上下方的对角线的元素外,其他所有元素皆为零的矩阵称为三角矩阵。图2-6-2是两种特殊矩阵的形式。 为了节省存储空间,可以对这些矩阵进行压缩存储。所谓压缩存储就是为多个值相同的元素只分配给一个存储空间,对零元素不分配存储空间。由于特殊矩阵中非零元素的分布有明显的规律,因此我们可将其压缩存储到一个一维数组中,并找到每个非零元素在一维数组中的对应关系。 2.6.4 稀疏矩阵的三元组存储 当一个m×n的矩阵A中有k个非零元素,若km×n 且这些非零元素在矩阵中的分布有没有一定的规律时,则称这种矩阵为稀疏矩阵。 例如,式(2. 5 0 0 12 0 0 5 0 8 0 0 0 0 16 0 0 0 0 0 0 0 0 M= 8 0 11 0 27 0 N= 0 16 11 0 4 0 0 0 0 0 0

您可能关注的文档

文档评论(0)

sanshengyuan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档