资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
1.实验目的:掌握稀疏矩阵的压缩存储方法及主要运算的实现。 2.实验内容与要求:设计一个稀疏矩阵计算器,要求能够:输入并建立稀疏矩阵;输出稀疏矩阵;执 行两个矩阵相加;执行两个矩阵相乘;求一个矩阵的转置矩阵。3.数据结构设计 逻辑结构:线性结构 存储结构:顺序存储结构 4.算法设计#include #define MAXSIZE 100 typedef int datatype; typedef struct int i,j; datatype v; Triple; typedef struct Triple dataMAXSIZE+1; int rposMAXSIZE+1; int mu,nu,tu; RLSMatrix; int main() void AddSMatrix(RLSMatrix M); void MultSMatrix(RLSMatrix M); void FastTransposeSMatrix(RLSMatrix M); RLSMatrix M; int k; printf(“ 请输入稀疏矩阵M 的行数、列数和非零元素个数:“); scanf(“%d%d%d“, printf(“ 请输入稀疏矩阵M 中非零元素的行号、列号和元素的值:n“); for(k=1;kMAXSIZE) printf(“ 错误 n“); else Q.dataQ.tu.i=arow; Q.dataQ.tu.j=ccol; Q.dataQ.tu.v=ctempccol; printf(“ 请输出稀疏矩阵M 和稀疏矩阵D 的乘积矩阵Q 中非零元素的行号、列号和元素的值 :n“); for(ccol=1;ccol=Q.tu;ccol+) printf(“%d%3d%3dn“,Q.dataccol.i,Q.dataccol.j,Q.dataccol.v); void FastTransposeSMatrix(RLSMatrix M) RLSMatrix T; int numMAXSIZE,cpotMAXSIZE,col,p,q,t; T.mu=M.mu;T.nu=M.nu;T.tu=M.tu; if(T.tu!=0) for(col=1;col=M.mu;col+) numcol=0; for(t=1;t=M.tu;t+) numM.datat.j+; cpot1=1; for(col=2;col=M.nu;col+) cpotcol=cpotcol-1+numcol-1; for(p=1;p=M.tu;p+) col=M.datap.j; q=cpotcol; T.dataq.i=M.datap.j; T.dataq.j=M.datap.i; T.dataq.v=M.datap.v; cpotcol+; printf(“ 请输出将稀疏矩阵M转置后的稀疏矩阵T 中非零元素的行号、列号和元素的值:n“); for(col=1;col=T.tu;col+) printf(“%d%3d%3dn“,T.datacol.i,T.datacol.j,T.datacol.v);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号