欢迎来到天天文库
浏览记录
ID:57689258
大小:41.50 KB
页数:6页
时间:2020-09-01
《数据结构矩阵的转置.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].
3、j,&M.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、f(M.data[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("");}11、returnOK;}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("转置后的");S12、howSMatrix(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[c13、ol];}cpot[1]=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、f(M.data[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("");}
11、returnOK;}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("转置后的");S
12、howSMatrix(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[c
13、ol];}cpot[1]=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("矩
此文档下载收益归作者所有