还剩5页未读,继续阅读
文本内容:
C语言数据构造稀疏矩阵vl.O可编辑可修改实验十稀疏矩阵#include#defineOKl#defineERRORO#defineTRUEl#defineFALSEO#defineMAXSIZE100typedefintStatus;typedeffloatElemType;typedefstruct{returnERROR;p=l;=row;M-data[p].j=col;M-data[p].e=e;M-tu++;returnOK;}fort=l;ttu;t++col=M-data[t].jp++;ifrow==M-data[t-l].i col==M-data[t-l].j{=e;returnOK;}fori=M-tu;i=p;i-{=M-data[i].i;M-data[i+l].j=M-data[i].j;M-data[i+l].e=M-data[i].e;}=row;M-data[p].j=col;M-data[p].e=e;M-tu++;returnOK;}StatusFindElemconstTSMatrix*M,int rowjntcol,日emType*e==rowM-data[p].j==col*e=M-data[p].e;returnTRUE;returnFALSE;}StatusTransposeSMatrixconstTSMatrix*M,TSMatrix*T{==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++;returnOK;}StatusFastTransposeSMatrixfconstTSMatrix vl.O可编辑可修改*M,TSMatrix*Tn;exitO;forcol=l;colnu;col++num[col]=0;];cpot[l]=l;;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[q].e;++cpot[col];}n;returnERROR;}Q-mu=M-mu;Q-nu=T-nu;Q-tu=0;P=l;fori=l;imu;i++{forj=l;jnu;j++{s=0;fork=l;knu;k++{ifFALSE==FindElemM,i,k,mcontinue;ifFALSE==FindElemT,k,j,tcontinue;s+=m*t;}ifs!=O{=i;Q-data[p].j=j;Q-data[p].e=s;P++;Q-tu++;returnOK;voidPrintSMatrixconstTSMatrix*M{j==M-data[p].j printf%g\t,M-data[p].e;p++;else{printf%g\t,;printf\n;printf\n;。