欢迎来到天天文库
浏览记录
ID:55915226
大小:24.00 KB
页数:11页
时间:2020-06-14
《大数据结构 矩阵的转置.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineMAXSIZE12500#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintElemType;typedefstruct{inti,j;inte;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;}TSMatrix;StatusCreateSMatrix(TSMatrix&M){intw,m,n;while(1){printf("请输入行:");scanf("%d",
2、&M.mu);if(M.mu>0){break;}if(M.mu<=0){printf("行不能为0");continue;}}while(1){printf("请输入列:");scanf("%d",&M.nu);if(M.nu>0){break;}if(M.nu<=0){printf("列不能为0");continue;}}printf("请输入非零元素:");scanf("%d",&M.tu);for(w=1;w<=M.tu;w++){printf("请输入元素所在行,列,元素值:");scanf("%d%d%d",&M.data[w].i,&M.data[w].j,&M.
3、data[w].e);if(M.data[w].i<=0
4、
5、M.data[w].j<=0
6、
7、M.data[w].i>M.mu
8、
9、M.data[w].j>M.nu){printf("输入错误1!");w--;}for(m=1;m<=w;m++){for(n=0;n10、ta[m].i==M.data[n].i&&M.data[m].j==M.data[n].j){printf("输入重复!");w--;break;}}}}returnOK;}StatusShowSMatrix(TSMatrixM){inti,j,t=1;printf("矩阵为:");for(i=1;i<=M.mu;i++){for(j=1;j<=M.nu;j++){if(M.data[t].i==i&&M.data[t].j==j){printf("%dt",M.data[t].e);t++;}elseprintf("0t");}printf("");}returnOK;11、}StatusTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;intcol;intp,q;if(T.tu){q=1;for(col=1;col<=M.nu;col++){for(p=1;p<=M.tu;p++){if(M.data[p].j==col){T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}}}}printf("矩阵转置成功!");printf("转置后的");ShowSMatrix12、(T);returnOK;}StatusDestorySMatrix(TSMatrix&M){M.mu=0;M.nu=0;M.tu=0;returnOK;}StatusFastTransposeSMatrix(TSMatrixM,TSMatrix&T){intnum[100];intcpot[100];intcol,i,p,q;T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){for(col=1;col<=M.nu;++col)num[col]=0;for(i=1;i<=M.tu;++i){col=M.data[i].j;++num[col];}cpot[1]=13、1;for(col=2;col<=M.nu;++col)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=M.tu;++p){col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col];}}printf("矩阵快速转置成功
10、ta[m].i==M.data[n].i&&M.data[m].j==M.data[n].j){printf("输入重复!");w--;break;}}}}returnOK;}StatusShowSMatrix(TSMatrixM){inti,j,t=1;printf("矩阵为:");for(i=1;i<=M.mu;i++){for(j=1;j<=M.nu;j++){if(M.data[t].i==i&&M.data[t].j==j){printf("%dt",M.data[t].e);t++;}elseprintf("0t");}printf("");}returnOK;
11、}StatusTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;intcol;intp,q;if(T.tu){q=1;for(col=1;col<=M.nu;col++){for(p=1;p<=M.tu;p++){if(M.data[p].j==col){T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}}}}printf("矩阵转置成功!");printf("转置后的");ShowSMatrix
12、(T);returnOK;}StatusDestorySMatrix(TSMatrix&M){M.mu=0;M.nu=0;M.tu=0;returnOK;}StatusFastTransposeSMatrix(TSMatrixM,TSMatrix&T){intnum[100];intcpot[100];intcol,i,p,q;T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){for(col=1;col<=M.nu;++col)num[col]=0;for(i=1;i<=M.tu;++i){col=M.data[i].j;++num[col];}cpot[1]=
13、1;for(col=2;col<=M.nu;++col)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=M.tu;++p){col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col];}}printf("矩阵快速转置成功
此文档下载收益归作者所有