欢迎来到天天文库
浏览记录
ID:12619562
大小:75.50 KB
页数:0页
时间:2018-07-18
《三元组顺序表实现矩阵的转置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、三元组顺序表实现矩阵的转置:/*------------------------------------------------------------------------------用三元组顺序表实现对稀疏矩阵的转置-----------------------------------------编译环境:VS2013--------------------------------------------------------------------------------------*/#define_CRT_SECU
2、RE_NO_WARNINGS//用于取消VS2013对printf、scanf等函数的警告#include#include#defineMAXSIZE100typedefintElemType;typedefstruct{inti;intj;ElemTypee;}tupletype;typedefstruct{intrownum;intcolnum;intnznum;tupletypedata[MAXSIZE];}table;voidcreatable(table*M);//用户输入,创建一
3、个三元组表voidtrans(table*M,table*T);//转置voidshow(table*M);//以矩阵形式输出三元组表intmain(){tableM,T;creatable(&M);system("cls");puts("矩阵M:");show(&M);trans(&M,&T);puts("矩阵M的转置矩阵T:");show(&T);return0;}4/4voidcreatable(table*M){introw,col,i,j,nz;ElemTypee;printf("请输入矩阵M的行、列、非零元素个数(中
4、间用逗号隔开):");scanf("%d,%d,%d",&row,&col,&nz);M->rownum=row;M->colnum=col;M->nznum=0;while(M->nznumdata[M->nznum].i=i-1;M->data[M->nznum].j=j-1;M->data[M->nznum].e=e;M->
5、nznum++;}}}voidtrans(table*M,table*T){intcol,b,q=0;T->rownum=M->colnum;T->colnum=M->rownum;T->nznum=M->nznum;if(T->nznum!=0){for(col=0;colcolnum;col++){for(b=0;bnznum;b++){if(M->data[b].j==col){T->data[q].i=M->data[b].j;T->data[q].j=M->data[b].i;T->data[q].e=
6、M->data[b].e;q++;4/4}}}}}voidshow(table*M){inti,j,k,e;for(i=0;irownum;i++){for(j=0;jcolnum;j++){e=0;for(k=0;knznum;k++){if(i==M->data[k].i&&j==M->data[k].j){e=M->data[k].e;break;}}printf("%4d",e);}printf("");}}4/4程序运行结果图:4/4
此文档下载收益归作者所有