#define OK 1
#define SIZE 100
int i,j;
int e;
}Triple;
Triple data[SIZE+1];
int mu,nu,tu;
}Tsmatrix;
int createTsmarix(Tsmatrix *M){
int m,n,p=1;
int c;
printf("please input the Tsmatrix :\n");
for(m=1;m<=a;m++)
for(n=1;n<=b;n++){
scanf("%d",&c);
if(c!=0)
{
M->data[p].e=c;
M->data[p].i=m;
M->data[p].j=n;
p++;
}
}
M->tu=p;
M->mu=a;
M->nu=b;
return OK;
}
int p,col,q,t,m;
int num[100];
int cpot[100];
T->mu=M->nu;
T->nu=M->mu;
T->tu=M->tu;
if(T->tu!=0){
for(col=1;col<=M->nu;col++) num[col]=0;
for(t=1;t<=M->tu;t++) ++num[M->data[t].j];
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];
}
}
return OK;
}
int m,n,p=1;
int d;
for(m=1;m<=b;m++){
printf("\n");
for(n=1;n<=a;n++){
if(T->data[p].i==m&&T->data[p].j==n)
{
d=T->data[p].e;
p++;
}
else d=0;
printf("%4d",d);
}
printf("\n");
}
}
void main(){
Tsmatrix *M,*T;
M=(Tsmatrix *)malloc(sizeof(Tsmatrix));
T=(Tsmatrix *)malloc(sizeof(Tsmatrix));
printf(" please input the tsmatrix's mu,nu\n");
scanf("%d%d",&a,&b);
createTsmarix(M);
printf("the tsmatrix is :\n");
printTsmatrix(M);
FastTransposeSMatrix(M,T);
printf("the tsmatrix after fasttranspose is:\n");
printTsmatrix(T);
getch();
}