第9周项目3 稀疏矩阵的三元组表示的实现及应用(2)
2016-11-03 11:04
253 查看
问题及代码:
头文件tup.h及源文件的代码见项目3(1)
运行结果:
/* *Copyright (c) 2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:shenpengpeng.cpp *作 者:申鹏鹏 *完成日期:2016年11月3日 *版 本 号:v1.0 * *问题描述:(2)采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法 提示1:两个行数、列数相同的矩阵可以相加 提示2:充分利用已经建立好的算法库解决问题 提示3:教材例6.3已经给出两个稀疏矩阵相加的运算的算法,但未利用基本运算。请比较这两种方案 */
头文件tup.h及源文件的代码见项目3(1)
#include "tup.h" bool MatAdd(TSMatrix a,TSMatrix b,TSMatrix &c) { int i,j; ElemType va,vb,vc; if (a.rows!=b.rows || a.cols!=b.cols) return false; //行数或列数不等时不能进行相加运算 c.rows=a.rows; c.cols=a.cols; //c的行列数与a的相同 c.nums=0; for(i=0; i<M; i++) for(j=0; j<N; j++) { Assign(a,va,i,j); Assign(b,vb,i,j); vc=va+vb; if(vc) Value(c,vc,i,j); } return true; } int main() { TSMatrix ta,tb,tc; int A[M] = { {0,0,1,0,0,0,0}, {0,2,0,0,0,0,0}, {3,0,0,0,0,0,0}, {0,0,0,7,0,0,0}, {0,0,0,0,5,0,0}, {0,0,0,0,0,4,6} }; int B[M] = { {0,0,10,0,0,0,0}, {0,0,0,20,0,0,0}, {0,0,0,0,0,0,0}, {0,0,0,50,0,0,0}, {0,0,20,0,0,0,0}, {0,0,0,10,0,0,4} }; CreatMat(ta,A); CreatMat(tb,B); printf("A:\n"); DispMat(ta); printf("B:\n"); DispMat(tb); if(MatAdd(ta, tb, tc)) { printf("A+B:\n"); DispMat(tc); } else { printf("相加失败\n"); } return 0; }
运行结果:
相关文章推荐
- 第9周项目3 稀疏矩阵的三元组表示的实现及应用
- 第9周项目3 稀疏矩阵的三元组表示的实现与应用(2)
- 第9周项目3 稀疏矩阵的三元组表示的实现及应用(1)
- 第9周项目3-稀疏矩阵的三元组表示的实现与应用(1)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目3稀疏矩阵的三元组表示的实现及应用2
- 第9周 项目3 - 稀疏矩阵的三元组表示的实现及应用
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 【第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)】
- 第9周SHH数据结构-【项目3-稀疏矩阵的三元组表示的实现及应用(1)】
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目三--稀疏矩阵的三元组表示的实现及应用(1)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目3稀疏矩阵的三元组表示的实现及应用1
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 第9周项目3 稀疏矩阵的三元组表示的实现及应用(1)
- 第9周项目3 稀疏矩阵的三元组表示的实现及应用(2)