三元组矩阵相加.docVIP

  • 5
  • 0
  • 约 3页
  • 2017-06-08 发布于重庆
  • 举报
三元组矩阵相加

三元组矩阵相加 计算二班 田甜 座机电话号码 #include #include using namespace std; const bool TRUE 1; const bool FALSE 0; const int MAXSIZE 100; //定义非零元素的最多个数 typedef struct //定义三元组元素 int r, c; //矩阵的行号和列号 int v; //矩阵元素值 Triple; typedef struct //定义普通三元组对象 Triple data[MAXSIZE+1]; int mu, nu, tu; //行数、列数、非零元素个数 TSMatrix; bool InputTSMatrix TSMatrix M, int y cout 输入矩阵的行数、列数和非零元素个数: ; cin M.mu M.nu M.tu; cout 请输入非零元素对应的行号、列号和相应的元素值: endl; for int i 1; i M.tu; i++ cin M.data[i].r M.data[i].c M.data[i].v; return TRUE; bool OutputSMatrix TSMatrix M int i, j, k 1; for i 0; i M.mu; i++ for j 0; j M.nu; j++ if M.data[k].r-1 i M.data[k].c-1 j cout setw 4 M.data[k].v; k++; else cout setw 4 0; //end_j cout endl; //end_i return TRUE; //两个稀疏矩阵的加法 int AddMatrix TSMatrix M,TSMatrix N,TSMatrix Q //求采用三元组顺序表存储表示的稀疏矩阵M和N的和,,结果赋给矩阵Q if M.mu 0 || M.nu 0 || M.tu 0 || N.mu 0 || N.nu 0 || N.tu 0 return 0; if M.mu! N.mu||M.nu! N.nu return 0; Q.mu M.mu; Q.nu M.nu; Q.tu 0; int x 0,y 0; for int i 1;i Q.mu;i++ for int j 1;j Q.nu;j++ for int p 1;p M.tu;p++ if i M.data[p].r j M.data[p].c x M.data[p].v; break; else x 0; //for p for int q 1;q N.tu;q++ if i N.data[q].r j N.data[q].c y N.data[q].v; break; else y 0; //for q if x+y ! 0 Q.data[Q.tu+1].r i; Q.data[Q.tu+1].c j; Q.data[Q.tu+1].v x+y; Q.tu++; //if //for j //for i OutputSMatrix Q ; return 0; void main TSMatrix A, B, C; InputTSMatrix A, 1 ; cout 矩阵A是: endl; OutputSMatrix A ; InputTSMatrix B, 1 ; cout 矩阵B是: endl; OutputSMatrix B ; cout 加法结果是: \n; AddMatrix A, B, C ; 调试结果:

文档评论(0)

1亿VIP精品文档

相关文档