数组和广义表线性表的扩展表中的数据元素本身.pptVIP

数组和广义表线性表的扩展表中的数据元素本身.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组和广义表线性表的扩展表中的数据元素本身

第5章 数组和广义表 ——线性表的扩展:表中的数据元素本身也是一个数据结构 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.3.2 稀疏矩阵 ADT Array { 数据对象: ji=0,…,bi-1,I=1,2,…,n; D = {aj1j2...jn | n(0)称为数组的维数,bi是数组第i维的长度, ji是数组元素的第i维下标, aj1j2. . .jn∈Elemset} 数据关系: R={R1 , R2 ... Rn} Ri = {< aj1...ji...jn, aj1...ji+1...jn > | 对每一维是线性的 0≤jk≤bk-1, 1≤k≤n 且k≠i 0≤ji≤bi-2, aj1...ji...jn, aj1...ji+1...jn∈D,I=2,…,n} 基本操作: InitArray(A,n,bound1,bound2,...,boundn); …… }ADT Array 二维数组的类型定义: typedef ElemType Array2[m][n]; Array2 A; 等价于: typedef ElemType Array1[n]; typedef Array1 Array2[m]; Array2 A; a00 a01 a02 ... A0,n-1 a10 a11 a12 ... A1,n-1 Amxn= ...... am-1,0 am-1,1 am-1,2 ... Am-1,n-1 Am×n=( (a00,a01,...a0,n-1), (a10,a11,...a1,n-1), ..., (am-1,0,am-1,1,...am-1,n-1) ) 5.2 数组的顺序表示和实现 除了初始化和销毁之外, 数组一般只有存取操作和修改元素值的操作, 也没有插入和删除操作。 存储时一般以行序为主序:(如C语言, PASCAL, BASIC等) Amxn=(a00,a01,...a0,n-1,a10,a11,...a1,n-1,...,am-1,0, am-1,1,...am-1,n-1) 二维数组的存储 LOC[0,0]为基地址,二维数组A[b1][b2]中元素aij的存储位置为: LOC[i,j]=LOC[0,0]+(b2×i+j)×L 0=i=b1-1 0=j=b2-1 L——每个数据元素所占的存储空间大小 例5.1: 若 L=2, LOC[0,0] = 1000,求LOC[2,3] LOC[2,3] = LOC[0,0] + (5*2+3)*L = 1000 + 13 * 2 = 1026 三维数组的存储 若LOC[0,0,0] 为基地址: LOC[i,j,k] = LOC[0,0,0]+ (n*h*i+h*j+k)*L 0 = i m 0 = j n 0 = k h 每个数据元素占L个存储单元 N维数组存储 b1,b2,...,bn是n维数组A每一维的维界,数组元素A(j1,j2,...,jn)的存储位置为: LOC[j1,j2,...jn]=LOC[0,0,...,0] + (b2×b3×…×bn×j1 + b3×…×bn×j2 + ... + bn×jn-1 + jn )×L 例: 在C语言中,设数组A[5][6][7][8]的首地址为2000,每个元素占2个字节;求元素A[3][4][5][4]的地址。 LOC[3,4,5,4] = 2000+(6*7*8*3+7*8*4+8*5+4)*2 = 2000+(1008+224+40+4)*2 = 4552 5.3 矩阵的压缩存储 矩 阵: 二维数组 特殊矩阵: 大量重复元素或大量0元素 稀疏矩阵: 大量0元素 压缩存储: 重复元素只分配一个存储空间, 0元素不分配存储空间 5.3.1 特殊矩阵 对 称 矩阵: aij = aji (1=i,j=n) 下三角矩阵: 当ij时, aij = 0, (1=i,j=n) 三对角矩阵: 当|i-j| 1时, aij = 0,

文档评论(0)

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

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

1亿VIP精品文档

相关文档