题目描述:
思路:
先用三元顺序表存放稀疏矩阵
typedefstruct{introw,col;intelem;}Elem;typedefstruct{intRow,Col,n;Elemdata[];}Matrix;接着行列号互换
T.Row=matrix.Col;T.Col=matrix.Row;T.n=matrix.n;然后按列号优先的顺序,将原矩阵与转置矩阵T行列元素互换即可
if(T.n){q=1;for(j=0;jmatrix.Col;j++)for(p=1;p=matrix.n;p++)if(matrix.data[p].col==j){T.data[q].row=matrix.data[p].col;T.data[q].col=matrix.data[p].row;T.data[q].elem=matrix.data[p].elem;q++;}}完整代码如下:
#includeiostream#includecmathusingnamespacestd;typedefstruct{introw,col;intelem;}Elem;typedefstruct{intRow,Col,n;Elemdata[];}Matrix;intmain(){Matrixmatrix;cinmatrix.Rowmatrix.Colmatrix.n;intN=matrix.n;inti=1;while(N--){intr,c,e;cinrce;matrix.data.row=r;matrix.data.col=c;matrix.data.elem=e;i++;}MatrixT;T.Row=matrix.Col;T.Col=matrix.Row;T.n=matrix.n;intp,q,j;if(T.n){q=1;for(j=0;jmatrix.Col;j++)for(p=1;p=matrix.n;p++)if(matrix.data[p].col==j){T.data[q].row=matrix.data[p].col;T.data[q].col=matrix.data[p].row;T.data[q].elem=matrix.data[p].elem;q++;}}for(i=1;iq;i++){coutT.data.row""T.data.col""T.data.elemendl;}return0;}预览时标签不可点收录于话题#个上一篇下一篇