长春市吉林大学数据结构课件 第三章 数组、字符串.pptx

长春市吉林大学数据结构课件 第三章 数组、字符串.pptx

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 数组、字符串; 3.1 数 组 3.1.1数组的存储和寻址 一维数组是若干个元素的一个有限序列。 一维数组的元素都必须具有相同的类型,即每个数组元素都占据相同大小的存储空间。 顺序方式存储; 每个元素都通过一个下标来指定,故一个一维数组对应一个下标函数. 一维数组A[n] ,每个数组元素占一个存储单元(不妨设为l个连续字节). 数组元素A[0]的首地址Loc(A[0]),则对于0≤i ≤n-1;一维数组 对于一维数组而言,各元素按下标次序依 次存放, 如a[0],a[1],a[2],…等等。 数组中任一元素 A[i] 的地址可表示为: Loc(a[i]) = Loc(a[0]) +i*l l 为每个元素占用存储空间的字节数。;高维数组 可以将其转化为一维数组,其存在两种存储方式:按行优先顺序和按列优先顺序。 所谓按行优先顺序,就是将数组元素按行向量的顺序存储,第i+1个行向量存储在第i个行向量之后。换句话说,就是将数组转化为一维数组来考虑。;2、二维数组 [例] int x[2][3] /*它有2×3个数组元素*/ ;按行优先顺序存放 其存储分配顺序为: x[0][0]-x[0][1]-x[0][2]-x[1][0]-x[1][1]-x[1][2] ;二维数组可以看作是一种特殊的一维数组。 [例] float a[3][4] (行优先); b[0] a[0][0] a[0][1] a[0][2] a[0][3] b- b[1] a[1][0] a[1][1] a[1][2] a[1][3] b[2] a[2][0] a[2][1] a[2][2] a[2][3] 二维数组元素a[i][j]的地址: Loc(a [i][j]) = Loc(b[i]) +j*C Loc(b[i])=Loc(b[0])+i*C’ // C’=n*C Loc(a[i][j])=Loc(a[0][0])+i*n*C+j*C = Loc(a[0][0]) + (i*n+j)*C ;[例] float a[3][4] C=4 a[0][0]=0 Loc(a[1][2]) = a+(i*n+j)*C = a+(1*4+2)*4 = a+24; 3、三维数组 多维数组元素在内存中的排序顺序为:第一维的下标变化最慢,最右边的下标变化最快。 [例]float a[2][3][4]; ;三维数组A[m][n][p]中数组元素a[i][j][k]地址计算公式为: Loc(a[i][j][k])=Loc(a[0][0][0])+i*n*p*C +j*p*C+k*C [例] D[3][3][4] Loc(a[1][2][2]) = a+ i*n*p*C+j*p*C+k*C =a+(1*3*4+2*4+2)*4 =a+88;n维数组 a[m1][m2]…[mn] 求该数组的任一个元素 a[i1][i2]…[in] 的地址;a[0][0][0]→a[0][0][1]→a[0][0][2]→a[0][0][3]→ a[0][1][0]→a[0][1][1]→a[0][1][2]→a[0][1][3]→ a[0][2][0]→a[0][2][1]→a[0][2][2]→a[0][2][3]→;a[0][0][0]→a[0][0][1]→a[0][0][2]→a[0][0][3]→ a[0][1][0]→a[0][1][1]→a[0][1][2]→a[0][1][3]→ a[0][2][0]→a[0][2][1]→a[0][2][2]→a[0][2][3]→;所谓按列优先顺序,就是将数组元素按列向量的顺序存储,第 i+1 个列向量存储在第 i 个列向量之后。 在FORTRAN语言程序设计中,数组是按列优先顺序存放的。;二维数组A[m][n] LOC(A[i][j])= LOC(A[0][0])+j*m*c+i*c ; 3.2 矩 阵 矩阵是许多物理问题中出现的数学对象,是常用的数据组织方式。 用二维数组来存放矩阵 特殊矩阵: 三角矩阵、对角矩阵、对称矩阵和稀疏矩阵等;三角矩阵的压缩存储: 考虑一个n?n维下三角矩阵 其第一行有1个非零元素 第二行有2个非零元素 …第n行有n个非零

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档