02第一章数据结构一(线性).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
---软件技术基础--- * 1) 二维数组 二维数组m行n列可以看作是m个或n个一维数组: Amxn = ((a11a12…a1n),(a21a22…a2n),..(am1am2…amn)) ---软件技术基础--- * 2) 数组的基本操作 数组有两种基本的操作: 给定下标,存取相应的数组元素; 给定下标,修改相应数组元素的值。 上两种操作可以归结为: 给定一组下标,确定与之相对应的数据元素存储地址。 数组是如何存储的呢? ---软件技术基础--- * 3) 数组的顺序存储结构 数组元素是连续存放的,因此采用顺序存储结构; 无论几维数组,在计算机中都是按一维数组来存放。数组存放通常采用两种方式: 按行优先顺序 按列优先顺序 ---软件技术基础--- * 按行优先顺序存储 按行优先顺序存储是将数组看作若干个行向量。例如,二维数组Amn,可以看作m个行向量,每个行向量n个元素。数组中的每个元素由元素的两个下标表达式唯一的确定。 地址计算公式: LOC(aij)=LOC(a11)+((i-1)×n+(j-1))×S 其中,S是每个元素所占的存储单元。 二维数组按行优先存储举例 ---软件技术基础--- * 二维数组按行优先存储举例 有二维数组Amn如下: 其存储方式及各元素存储位置计算如下: LOC(aij)=LOC(a11)+((i-1)×n+(j-1))×S 1 2 3 4 5 6 7 8 9 10 11 12 ((a11,a12,a13,a14),(a21,a22,a23,a24),(a31,a32,a33,a34)) LOC(a23)= LOC(a11)+((2-1) × 4+(3-1))×1= 7 LOC(a34)= 1 +((3-1) × 4 +(4-1)) ×1= 12 LOC(a14)= 1 +((1-1)×4 +(4-1)) ×1= 4 ---软件技术基础--- * 按列优先顺序存储 按列优先顺序存放是将数组看作若干个列向量。例如,二维数组Amn,可以看作n个列向量,每个列向量m个元素。数组中的每个元素由元素的两个下标表达式唯一的确定。 地址计算公式: LOC(aij)=LOC(a11)+((j-1)×m+(i-1))×S 其中,S 是每个元素所占的存储单元。 二维数组按列优先存储举例 ---软件技术基础--- * 二维数组按列优先存储举例 有二维数组如下: 其存储方式及各元素存储位置计算如下: LOC(aij)=LOC(a11)+((j-1)×m+(i-1))×S 1 2 3 4 5 6 7 8 9 10 11 12 (a11,a21,a31),(a12,a22,a32),(a13,a23,a33),(a14,a24,a34)) LOC(a23)= LOC(a11)+(3-1)x 3 +(2-1)= 8 LOC(a34)= 1 + (4-1)x 3 + (3-1) = 12 LOC(a14)= 1 + (4-1)x 3 + (1-1) = 10 ---软件技术基础--- * 4) 矩阵的压缩存储结构 引入: 实际工程问题中推导出的数组常常是高阶、含大量零元素的矩阵,或者是些有规律排列的元素。为了节省存储空间,通常是对这类矩阵进行压缩存储。 压缩的含义是: 相同值的多个元素占用一个存储单元; 零元素不分配存储单元。 ---软件技术基础--- * 可以通过压缩方式存储的常见矩阵 对称矩阵 存储主对角线以上(下)的元素; 上(下)三角矩阵 只存储三角阵元素; 带状矩阵 只存储带状元素; 稀疏矩阵 只存储非零元素; 大量相同元素矩阵 存储某元素和重复个数。 ---软件技术基础--- * 【例1】对称矩阵的压缩存储 对称矩阵的元素满足: aij = aji 1 ? i ,j ? n 因此将n×n 个元素压缩存放到 n(n+1)/2 个单元的一维数组S((n+1)×n/2)中。 aij的地址为: i(i-1)/2+j 当i?j LOC(aij) = j(j-1)/2+i 当ij 实例如下 ---软件技术基础--- * 设有A3x3矩阵, a11 A3x3 = a21 a22 a31 a32 a33 存于一维数组S[6]

文档评论(0)

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

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

1亿VIP精品文档

相关文档