天下文章一大抄,看了好多博客,内容都是一模一样的,很少有自己写的,代码也没有注释,难受想哭!!!
这里呢,我就自己记录一下供大家参考学习
#include#define Maxsize 10 //三元组结构体 typedef struct { int e; //元素的值 int i,j; //非零元素的行 列 坐标 }Triple; //三元组矩阵 typedef struct { Triple data[Maxsize+1]; //三元组数组 用来存放非零元素 int m,n,t; //矩阵的 行数 列数 非零元素个数 }TMatrix; InitTMatrix(TMatrix &A,TMatrix &B){ A.m = 2;A.n = 3;A.t = 3; A.data[1].e = 2; A.data[1].i = 0; A.data[1].j = 1; A.data[2].e = 3; A.data[2].i = 1; A.data[2].j = 0; A.data[3].e = 1; A.data[3].i = 1; A.data[3].j = 2; B.m = 2;B.n = 3;B.t = 2; B.data[1].e = 1; B.data[1].i = 0; B.data[1].j = 0; B.data[2].e = 3; B.data[2].i = 1; B.data[2].j = 0; } PrintTMatrix(char desc[],TMatrix M){ puts(desc); for(int i = 1;i<=M.t;i++){ printf("第 %d行第%d列元素是 %d n",M.data[i].i,M.data[i].j,M.data[i].e); } } void MatrixAdd(TMatrix A,TMatrix B,TMatrix &C){ int p = 1,q = 1 ,k = 1; //循环遍历 i 用于循环 控制A 矩阵 p B ;q C; int an = A.t,bn = B.t;//A B 两个三元组矩阵 的元素个数 while(p<=an&&q<=bn){ //直到 遍历完其中一个三元组 结束循环 if(A.data[p].i 简单的把算法实现出来了 也没有考虑健壮性等等,如发现问题,欢迎大家指正。



