c语言三元组稀疏矩阵的转置实验报告,实现稀疏矩阵(采用三元组表示)的基本运算实验报告.doc...

实现稀疏矩阵(采用三元组表示)的基本运算实验报告.doc

实现稀疏矩阵(采用三元组表示)的基本运算实验报告一 实验题目 实现稀疏矩阵(采用三元组表示)的基本运算二 实验要求 (1)生成如下两个稀疏矩阵的三元组 a 和 b; (上机实验指导 P92 )(2)输出 a 转置矩阵的三元组 ;(3)输出 a b 的三元组;(4)输出 a * b 的三元组;三 实验内容3.1 稀疏矩阵的抽象数据类型ADT SparseMatrix 数据对象Daij| i 1,2,3,.,m; j 1,2,3n; ai,jElemSet,m 和 n 分别称为矩阵的行数和列数 数据关系 R Row , Col Row | 1 i m , 1 j n-1 Col | 1i m-1,1j n基本操作CreateSMatrixdefine MaxSize 100 矩阵中非零元素最多个数typedef struct int r; 行号int c; 列号ElemType d; 元素值 TupNode; 三元组定义typedef struct int rows; 行数值int cols; 列数值int nums; 非零元素个数TupNode dataMaxSize; TSMatrix; 三元组顺序表定义3.3基本操作实现void CreatMatTSMatrix t.rowsN;t.colsN;t.nums0;for i0;idefine N 4typedef int ElemType;define MaxSize 100 矩阵中非零元素最多个数typedef struct int r; 行号int c; 列号ElemType d; 元素值 TupNode; 三元组定义typedef struct int rows; 行数值int cols; 列数值int nums; 非零元素个数TupNode dataMaxSize; TSMatrix; 三元组顺序表定义void CreatMatTSMatrix t.rowsN;t.colsN;t.nums0;for i0;ib.dataj.ca元素的列号大于b元素的列号c.datak.rb.dataj.r; 将 b元素添加到 c中c.datak.cb.dataj.c;c.datak.db.dataj.d;k;j;else a元素的列号等于 b元素的列号va.datai.db.dataj.d;if v0 只将不为 0的结果添加到 c中c.datak.ra.datai.r;c.datak.ca.datai.c;c.datak.dv;k;i;j;else if a.datai.rb.dataj.r a元素的行号小于 b元素的行号c.datak.ra.datai.r; 将 a元素添加到 c中c.datak.ca.datai.c;c.datak.da.datai.d;k;i;else a元素的行号大于 b元素的行号c.datak.rb.dataj.r; 将 b元素添加到 c中c.datak.cb.dataj.c;c.datak.db.dataj.d;k;j;c.numsk;return true;int getvalueTSMatrix c,int i,int jint k0;while kc.nums if kc.numsreturnc.datak.d;elsereturn0;bool MatMulTSMatrix a,TSMatrix b,TSMatrix ElemType s;if a.colsb.rows a的列数不等于 b的行数时不能进行相乘运算return false;for i0;ia.rows;ifor j0;jb.cols;js0;for k0;ka.cols;kssgetvaluea,i,k*getvalueb,k,j;if s0 产生一个三元组元素c.datap.ri;c.datap.cj;c.datap.ds;p;c.rowsa.rows;c.colsb.cols;c.numsp;return true;int mainElemType a1NN 1,0,3,0,0,1,0,0,0,0,1,0,0,0,1,1;ElemType b1NN 3,0,0,0,0,4,0,0,0,0,1,0,0,0,0,2;TSMatrix a,b,c;CreatMata,a1; CreatMatb,b1;printf“a的三元组n“;DispMata;printf“b的三元组n“;DispMatb;printf“a转置为 cn“;TranMata,c;printf“c的三元组n“;DispMatc;printf“cabn“;MatAdda,b,c;printf“c的三元组n“;DispMatc;printf“cabn“;MatMula,b,c;printf“c的三元组n“;DispMatc;return 0;四 实验结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值