数据结构与算法第5章数组.ppt

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

* 4.4 矩阵的转置 稀殊矩阵: ①三元组顺序表 的转置运算 “列序”递增转置法 算法实现 void TransposeTSMatrix(TSMatrix A,TSMatrix *B) { int i,j,k; B-m=A.n; B-n=A.m; B-len=A.len; if(B-len0) { j=1; for(k=1; k=B-m; k++) for(i=1; i=A.len; i++) if(A.data[i].col==k) { B-data[j].row=A.data[i].col; B-data[j].col=A.data[i].row; B-data[j].e=A.data[i].e; j++; } } } #define MAXSIZE 1000 typedef struct { int row, col; ElementType e ; }Triple; typedef struct { Triple data[MAXSIZE +1]; int m, n, len; }TSMatrix; * 第 5 章 数组和广义表 - - 0 28 0 0 36 0 0 0 7 0 5 0 0 14 0 - - 0 0 5 28 0 0 0 0 0 0 7 14 36 0 0 1 2 14 2 2 -7 3 1 36 3 4 28 1 5 -5 i j v i j v 2 1 14 2 2 -7 1 3 36 4 3 28 5 1 -5 矩阵的转置 转置后行号 1 2 3 4 5 该行起始位置 4 5 2 1 4 方法二: 3 6 4 5 2 * col 1 2 3 4 5 num[col] 0 0 0 0 0 1 1 2 1 1 col 1 2 3 4 5 num[col] 0 0 0 0 0 1 1 2 1 1 position[col] 1 2 4 4 5 1 2 14 2 2 -7 3 1 36 3 4 28 1 5 -5 i j v * 第 5 章 数组和广义表 稀殊矩阵: ①三元组顺序表 的转置运算 一次定位快速转置 算法步骤: a.扫描矩阵A的三元组表,统计出A的每一列的 非零元素的个数,存放到数组num[col]中 (num[col] 存放M第col列的非零元素个数)。 b.计算转置矩阵B的每一行在三元组表中的开始 位置,并存放到数组position[col]中, (position[col] 存放T第col行开始位置)。 c.再次扫描矩阵A的三元组表,根据非零元素的列号col, 确定它转置后的行号,查position表,按查到的位置直 接将该项存入转置三元组表B中,并修改position[col] ,将 其指向该行下一个元素的存储位置(position[col ] ++ )。 矩阵的转置 * 第 5 章 数组和广义表 稀殊矩阵: ①三元组顺序表 的转置运算 一次定位快速转置 算法实现: a. for(col=1;col=A.n;col++) num[col]=0; for(t=1;t=A.len;t++) num[A.data[t].col]++; 1 2 14 2 2 -7 3 1 36 3 4 28 1 5 -5 i j v col 1 2 3 4 5 num[col] 0 0 0 0 0 1 1 2 1 1 矩阵的转置 * 第 5 章 数组和广义表 稀殊矩阵: ①三元组顺序表 的转置运算 一次定位快速转置 算法实现: position[1] = 1; for(col=2;colA.n;col++) position[col] = position[col-1]+num[col-1]; col 1 2 3 4 5 n

文档评论(0)

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

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

1亿VIP精品文档

相关文档