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

数据结构 第05章 多维数组、矩阵和广义表.ppt

数据结构 第05章 多维数组、矩阵和广义表.ppt

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

二维数组的特点: 若是n 维数组,其中任一元素的地址该如何计算? LOC ( j1, j2, …, jn ) = LOC ( 0, 0, …, 0 )+ n 维数组的顺序存储表示 int TransposeSMatrix ( TSMatrix a, TSMatrix b { // 采用三元组表存储表示,求稀疏矩阵 A 的转置矩阵 B int p, q, col; b.mu = a.nu; b.nu = a.mu; b.tu = a.tu; if ( b.tu ) { …… } return OK; } // TransposeSMatrix 算法5.6 求矩阵A的转置矩阵B—P.101 int TransposeSMatrix ( TSMatrix a, TSMatrix b ) { …… if ( b.tu ) { q = 1; // q 表示 b.data 中元素的下标 for ( col = 1; col = a.nu; ++col ) // 按列序求转置 for ( p = 1; p = a.tu; ++p ) // p 遍历 a.data 中所有三元组 if ( a.data[p].j = = col ) { b.data[q].i = a.data[p].j; b.data[q].j = a.data[p].i; b.data[q].e = a.data[p].e; ++q; } } …… } 算法5.6 求矩阵A的转置矩阵B---P.101 5.4 广义表 2. 特 点 有次序性 有长度 有深度 可递归 可共享 广义表的存储结构 M的三元组顺序表图示 M = 0 12 9 0 0 0 0 0 0 0 0 0 0 0 -3 0 0 0 0 14 0 0 0 24 0 0 0 0 0 18 0 0 0 0 0 15 0 0 -7 0 0 0 设M是TSMatrix 类型的结构变量,则M有4 个域,其中M.data用于存储矩阵M的三元组表,如右图所示: i j e 0 1 2 3 4 5 6 7 8 3 1 -3 6 1 15 1 2 12 5 2 18 1 3 9 4 3 24 6 4 -7 3 6 14 M.data 6 7 8 M.mu M.nu M.tu 按行序有序 矩阵的运算    --如何求转置矩阵? 矩阵M M的转置矩阵T M = T = 3×5 5×3 i j e 0 1 2 3 4 5 2 2 -7 1 2 14 1 5 -5 3 4 28 3 1 36 i j e 0 1 2 3 4 5 2 2 -7 2 1 14 5 1 -5 4 3 28 1 3 36 i j e 0 1 2 3 4 5 2 2 -7 1 3 36 2 1 14 5 1 -5 4 3 28 M.data T.data T.data ? 用常规的二维数组表示时的算法 其时间复杂度为: O( n×m ) for (col=1; col=n; ++col) for (row=1; row=m; ++row) T[col][row] = M[row][col]; 列 数 行 数 矩阵转置算法-- 算法5.6 基本思想:   对三元组

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档