假设nn的稀疏矩阵A采用三元组表示,设计一个程序exp6-4.cpp实现如下功能:
2017-06-11 21:48
681 查看
(1)生成如下两个稀疏矩阵的三元组a和b; (2)输出a转置矩阵的三元组; (3)输出a+b的三元组; (4)输出ab的三元组。 #include <iostream> #include<cstdio> using namespace std; #define M 4 #define N 4 typedef struct { int r; int c; int d; } TupNode; typedef struct { int rows; int cols; int nums; TupNode data[1000]; } TSMatrix; void CreatMat(TSMatrix &t,int A[M] ) { int i,j; t.rows=M; t.cols=N; t.nums=0; for(i=0; i<M; i++) for(j=0; j<N; j++) { if(A[i][j]!=0) { t.data[t.nums].r=i; t.data[t.nums].c=j; t.data[t.nums].d=A[i][j]; t.nums++; } } } void DispMat(TSMatrix t) { int i; if(t.nums<=0) return ; printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums); printf("\t--------------------\n"); for(i=0; i<t.nums; i++) printf("\t%d\t%d\t%d\n",t.data[i].r,t.data[i].c,t.data[i].d); } void TranTat(TSMatrix t,TSMatrix &tb) { int p,q=0,v; tb.rows=t.cols; tb.cols=t.rows; tb.nums=t.nums; if(t.nums!=0) { for(v=0; v<t.cols; v++) for(p=0; p<t.nums; p++) { tb.data[q].r=t.data[p].c; tb.data[q].c=t.data[p].r; tb.data[q].d=t.data[p].d; q++; } } } int main() { TSMatrix t,t1,tb; int c[4][4]; int a[M] = {{1,0,3,0},{0,1,0,0},{0,0,1,0},{0,0,1,1}}; CreatMat(t,a); TranTat(t,tb); printf("a的三元组:\n"); DispMat(t); printf("a的转置三元组:\n"); DispMat(tb); int b[M] = {{3,0,0,0},{0,4,0,0},{0,0,1,0},{0,0,0,2}}; CreatMat(t1,b); printf("b的三元组:\n"); DispMat(t1); for (int i = 0; i < M; i++) for (int j = 0; j < N; j++) 4000 c[i][j] = a[i][j] + b[i][j]; CreatMat(t,c); printf("a+b的和:\n"); DispMat(t); int sum; for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { sum = 0; for (int k = 0; k < N; k++) { sum += a[i][k] * b[k][j]; } c[i][j]=sum; } } CreatMat(t,c); printf("a*b的三元组:\n"); DispMat(t); return 0; }
相关文章推荐
- 实验题7.1: 编写一个程序algo7-1.cpp,实现二叉树的各种基本运算,并在此基础上设计一个程序Main.cpp完成如下功能(b为如下图所示的一棵二叉树)
- 稀疏矩阵A和B,其行数和列数对应相等,编写一个程序,计算A和B之和,假设稀疏矩阵采用三元组表示
- 稀疏矩阵的三元组表示的实现及应用(2)——采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法
- 项目3-稀疏矩阵的三元组表示的实现及应用
- 第九周--项目3稀疏矩阵的三元组表示的实现及应用(1)
- 第九周--项目三--稀疏矩阵的三元组表示的实现及应用(1)
- 第9周 项目3-稀疏矩阵的三元组表示的实现及应用
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 第九周 项目3 稀疏矩阵的三元组表示的实现及应用(一)
- 二叉树采用二叉链表结构表示。设计并实现如下算法:后序递归建树,先序非递归遍历该树。
- 创建一个如下的窗体,并在窗体上放置colorDialog控件。实现功能:1)程序运行时,单击打开颜色对话框按钮,可选择颜色,并以所选颜色作为窗体背景色
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 项目3-稀疏矩阵的三元组表示的实现及应用
- 第九周 项目3-稀疏矩阵的三元组表示的实现及应用
- 第九周 项目3 稀疏矩阵的三元组表示的实现及应用(矩阵相加)
- javascript实现数据结构: 稀疏矩阵之三元组线性表表示
- 第九周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法
- 第九周项目3——稀疏矩阵三元组表示的实现与应用(1)
- 第9周实践项目3-稀疏矩阵的三元组表示的实现(3.1)