欢迎来到天天文库
浏览记录
ID:8813263
大小:38.50 KB
页数:5页
时间:2018-04-08
《数据结构矩阵的相乘》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#defineMAXSIZE20usingnamespacestd;typedefstruct//三元组的定义{introw;//非0元的行下标intcol;//非0元的列下标inte;//非0元的素值}Triple;typedefstruct//矩阵的定义{Tripledata[MAXSIZE];//非0元三元组表intm,n,len;//矩阵的行数,列数和非0元个数}TSMatrix;voidinitMatrix(TSMatrix&A)//矩阵初始化函数,参数类型为矩阵{A.len=0;A.m=0;A.n=0;for(inti=0;i2、ZE;i++){A.data[i].col=0;A.data[i].e=0;A.data[i].row=0;}}voidcreateMatrix(TSMatrix&A)//创建矩阵函数,创建三元组顺序表表示的矩阵{initMatrix(A);cout<<"创建矩阵:";cout<<"请输入矩阵的行、列值及非0元的个数:";cin>>A.m>>A.n>>A.len;//输入矩阵的行、列值及非0元的个数for(inti=0;i>A.data[i].row;c3、in>>A.data[i].col;cin>>A.data[i].e;}}intsearch(TSMatrixA,intm,intn)//找到m行n列元素在A的三元组表中的位置。若找到返回值,若找不到返回-1{intflag=-1;for(inti=0;i4、intj=0;if(A.n==B.m){C.m=A.m;C.n=B.n;for(i=0;i5、+].e=B.data[j].e*A.data[i].e;}//end_if(flag==-1)elseC.data[flag].e=C.data[flag].e+A.data[i].e*B.data[j].e;}//end_if(A.data[i].col==B.data[j].row)}//end_for(j=0;j6、IZE][MAXSIZE];for(i=0;i7、";//控制打印格式for(j=0;j8、"<9、------------------"<
2、ZE;i++){A.data[i].col=0;A.data[i].e=0;A.data[i].row=0;}}voidcreateMatrix(TSMatrix&A)//创建矩阵函数,创建三元组顺序表表示的矩阵{initMatrix(A);cout<<"创建矩阵:";cout<<"请输入矩阵的行、列值及非0元的个数:";cin>>A.m>>A.n>>A.len;//输入矩阵的行、列值及非0元的个数for(inti=0;i>A.data[i].row;c
3、in>>A.data[i].col;cin>>A.data[i].e;}}intsearch(TSMatrixA,intm,intn)//找到m行n列元素在A的三元组表中的位置。若找到返回值,若找不到返回-1{intflag=-1;for(inti=0;i4、intj=0;if(A.n==B.m){C.m=A.m;C.n=B.n;for(i=0;i5、+].e=B.data[j].e*A.data[i].e;}//end_if(flag==-1)elseC.data[flag].e=C.data[flag].e+A.data[i].e*B.data[j].e;}//end_if(A.data[i].col==B.data[j].row)}//end_for(j=0;j6、IZE][MAXSIZE];for(i=0;i7、";//控制打印格式for(j=0;j8、"<9、------------------"<
4、intj=0;if(A.n==B.m){C.m=A.m;C.n=B.n;for(i=0;i5、+].e=B.data[j].e*A.data[i].e;}//end_if(flag==-1)elseC.data[flag].e=C.data[flag].e+A.data[i].e*B.data[j].e;}//end_if(A.data[i].col==B.data[j].row)}//end_for(j=0;j6、IZE][MAXSIZE];for(i=0;i7、";//控制打印格式for(j=0;j8、"<9、------------------"<
5、+].e=B.data[j].e*A.data[i].e;}//end_if(flag==-1)elseC.data[flag].e=C.data[flag].e+A.data[i].e*B.data[j].e;}//end_if(A.data[i].col==B.data[j].row)}//end_for(j=0;j6、IZE][MAXSIZE];for(i=0;i7、";//控制打印格式for(j=0;j8、"<9、------------------"<
6、IZE][MAXSIZE];for(i=0;i7、";//控制打印格式for(j=0;j8、"<9、------------------"<
7、";//控制打印格式for(j=0;j8、"<9、------------------"<
8、"<9、------------------"<
9、------------------"<
此文档下载收益归作者所有