数据结构周屹任义主编第5章课件教学.pptVIP

数据结构周屹任义主编第5章课件教学.ppt

  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文档。上传文档
查看更多
数据结构周屹任义主编第5章课件教学.ppt

第5章 数组和广义表 1)理解数组的基本概念,掌握数组在以行为主的存储结构中的地址计算方法; 2)掌握矩阵实现压缩存储时的下标变换规则; 3)理解稀疏矩阵的两种存储方式的特点和适用范围,领会以三元组表示稀疏矩阵时进行运算采用的处理方法; 4)理解广义表的定义,了解其两种存储结构以及操作方法; 5.1 数组的基本概念 数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型。 数组是一个具有固定格式和数量的数据有序集,每一个数据元素有惟一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能改变。在数组中通常做下面两种操作: 取值操作:给定一组下标,读其对应的数据元素。 赋值操作:给定一组下标,存储或修改与其相对应的数据元素。 5.2 数组的顺序存储 通常,数组在内存被映象为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是一维的,数组的行列固定后,通过一个映象函数,则可根据数组元素的下标得到它的存储地址。 设有m×n二维数组Amn,下面看按元素的下标求其地址的计算: 以“以行为主序”的分配为例:设数组的基址为LOC(a11),每个数组元素占据l个地址单元,那么aij 的物理地址可用线性寻址函数计算: LOC(aij) = LOC(a11) + ( (i-1)*n + j-1 ) * l 推广到一般的三维数组:A[c1..d1] [c2..d2] [c3..d3],则aijk的物理地址为: LOC(i,j,k)=LOC(a c1 c2 c3)+( (i- c1) *( d2 - c2 + 1)* (d3- c3 + 1)+ (j- c2) *( d3- c3 + 1)+(k- c3))*l 三维数组的逻辑结构和以行为主序的分配示意图如图5-4所示。 图5-4 三维数组示意图 5.3 矩阵的压缩存储 对于一个矩阵结构显然用一个二维数组来表示是非常恰当的,但在有些情况下,比如常见的一些特殊矩阵,如三角矩阵、对称矩阵、带状矩阵、稀疏矩阵等,从节约存储空间的角度考虑,这种存储是不太合适的。下面从这一角度来考虑这些特殊矩阵的存储方法。 5.3.1 特殊矩阵 1.对称矩阵 在一个n阶方阵A中,若元素满足下述性质: aij=aji 0≦i,j≦n-1 则称A为对称矩阵。对称矩阵的特点是:在一个n阶方阵中,有aij=aji ,其中1≤i , j≤n,如图5-5便是一个5阶对称矩阵。 对称矩阵关于主对角线对称,因此只需存储上三角或下三角部分即可,这样,原来需要n*n个存储单元,现在只需要n(n+1)/2个存储单元了,节约了n(n-1)/2个存储单元,当n较大时,这是可观的一部分存储资源。 2.三角矩阵 以主对角线划分,三角矩阵有上三角和下三角两种。如图5-7的矩阵称为三角矩阵,其中c为某个常数。其中5-7(a)为下三角矩阵:主队角线以上均为同一个常数;(b)为上三角矩阵,主队角线以下均为同一个常数。 1)下三角矩阵 与对称矩阵类似,不同之处在于存完下三角中的元素之后,紧接着存储对角线上方的常量,这样一共存储了n*(n+1)+1个元素,设存入向量:SA[n*(n+1)+1]中,这种的存储方式可节约n*(n-1)-1个存储单元,sak 与aji 的对应关系为: 2) 上三角矩阵 对于上三角矩阵,以行为主序顺序存储上三角部分,最后存储对角线下方的常量。对于第1行,存储n个元素,第2行存储n-1个元素,…,第p行存储(n-p+1)个元素,aij的前面有i-1行,共存储: n+(n-1) +…+(n-i+1)= =(i-1)*(2n-i+2)/2 5.3.2 稀疏矩阵 设m*n矩阵中有t个非零元素且tm*n,这样的矩阵称为稀疏矩阵。 如果按常规分配方法,顺序分配在计算机内,那将是相当浪费内存的。 为此提出另外一种存储方法,仅仅存放非零元素。 通常零元素分布没有规律,为了能找到相应的元素,所以仅存储非零元素的值是不够的,还要记下它所在的行和列。 稀疏矩阵的三元组表存储 将三元组按行优先的顺序,同一行中列号从小到大的规律排列成一个线性表,称为三元组表,采用顺序存储方法存储该表。如图5-10稀疏矩阵对应的三元组表为图5-11三元组表。 这种存储的思想实现如下: define SMAX 1024; /*一个足够大的数*/

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档