网站大量收购独家精品文档,联系QQ:2885784924

特殊矩阵和广义表.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
特殊矩阵和广义表

第5章 数组、特殊矩阵 和广义表 前几章讨论的线性结构中的数据元素都是原子类型,元素的值是不再分解的。 本章讨论的两种数据结构——数组和广义表是线性表的扩展:数据元素本身又是数据结构。 第5章 数组、特殊矩阵 和广义表 5.1 多维数组 5.2 特殊矩阵的压缩存储 5.3 稀疏矩阵 5.4 广义表 5.1 多维数组 5.1.1 数组的逻辑结构 数组的数据结构特点:元素本身是具有某种结构的数据,属于同一数据类型。 一维数组的元素是原子 二维数组的元素是一维数组 三维数组的元素是二维数组 数组元素用下标标记 5.1.2 数组的内存映象 1.一维数组 3.三维数组 各维元素个数为 m1, m2, m3 下标为 i1, i2, i3的数组元素的存储地址:按页/行/列存放 n 维数组 各维元素个数为 m1, m2, m3, …, mn 下标为 i1, i2, i3, …, in 的数组元素的存储地址: 图(a)二维数组以m行n列的矩阵形式表示的线性表 A=(α0, α 1,… αp ) ( p=m-1 或 n-1 ) 其中每个αj是一个列向量线性表(图(b)), αj=(a0j,a1j,…,am-1,j) 0≤j≤n-1 或者αi 是一个行向量线性表(图(c))。 αi=(ai0,ai1,…,ai,n-1) 0≤i≤m-1 二维数组有两种存储方式: 以列序为主序( column major order),如图(a); 以行序为主序(row major order),如图(b)。 第5章 数组、特殊矩阵 和广义表 5.1 多维数组 5.2 特殊矩阵的压缩存储 5.3 稀疏矩阵 5.4 广义表 5.2 特殊矩阵的压缩存储 矩阵用二维数组表示。 特殊矩阵: 对称矩阵 三角矩阵 带状矩阵 稀疏矩阵 特殊矩阵有特殊的存储方法。 对称矩阵 特点:n阶方阵,aij=aji。 只需要存储上三角或下三角部分即可。原来需要n*n个单元,现在只需要n*(n+1)/2个单元。 三角矩阵 特点:n阶方阵,主对角线以上(以下)为同一个常数。 下三角矩阵的存储下三角元素和常数,占用n*(n+1)/2+1个单元。 数组SA[k]与i、j的关系: 带状矩阵 特点:存在最小正数m,满足当|i-j|≥m时, aij=0。W=2m-1为带宽。 带状矩阵 第5章 数组、特殊矩阵 和广义表 5.1 多维数组 5.2 特殊矩阵的压缩存储 5.3 稀疏矩阵 5.4 广义表 5.3 稀疏矩阵(Sparse Matrix) 定义:在m*n的矩阵中,有t个元素不为零。令δ=t/(m*n),称δ为矩阵的稀疏因子。可认为δ≤0.1时称为稀疏矩阵。 抽象数据类型稀疏矩阵的定义如下: ADT SparseMatrix{ 数据对象:D={aij|i=1,2,…,m; j=1,2,..,n;m和n分 别为矩阵的行数和列数。} 数据关系:R={Row,Col} Row={ai,j , ai,j+1|1=i=m, 1=j=n-1} Col= {ai,j , ai+1,j|1=i=m-1, 1=j=n} 基本操作: CreateSMatrix(M); 操作结果:创建稀疏矩阵M。 DestroySMatrix(M); 初始条件:稀疏矩阵M存在。 操作结果:销毁稀疏矩阵M。 PrintSMatrix(M); 初始条件:稀疏矩阵M存在。 操作结果:输出稀疏矩阵M。 CopySMatrix(M,&T); 初始条件:稀疏矩阵M存在。 操作结果:由稀疏矩阵M复制得到T。 AddSMatrix(M,N,Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等 操作结果:求稀疏矩阵的和Q=M+N。 SubtMatrix(M,N,Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等 操作结果:求稀疏矩阵的差Q=M-N。 MultSMatrix(M,N,&Q); 初始条件:稀疏矩阵M的列数等于N的行数。 操作结果:求稀疏矩阵乘积Q=M*N。 TransposeSMatrix(M,&T); 初始条件:稀疏矩阵M存在。 操作结果:求稀疏矩阵M的转置矩阵T。 }ADT SparseMatrix 稀疏矩阵的压缩存储 按照压缩存储的概念,只

文档评论(0)

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

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

1亿VIP精品文档

相关文档