数据结构三元组表法实现稀疏矩阵的转置.txt资料文档下载
《数据结构三元组表法实现稀疏矩阵的转置.txt资料文档下载》由会员分享,可在线阅读,更多相关《数据结构三元组表法实现稀疏矩阵的转置.txt资料文档下载(2页珍藏版)》请在冰豆网上搜索。
intm,n,tu;
//�С��С�����Ԫ�صĸ���
}TSMatrix;
voidFastTransposeTSMatrix(TSMatrixA,TSMatrix*B)
/*���ھ������Ԫ���ʾ������һ�ζ�λ����ת�÷
���������Aת��Ϊ����B*/
intcol,p,q,t;
intnum[N],position[N];
B->
m=A.n;
B->
n=A.m;
tu=A.tu;
if(B->
tu)
{
for(col=1;
col<
=A.n;
++col)
num[col]=0;
for(t=1;
t<
=A.tu;
++t)
++num[A.data[t].j];
//�����������������ÿ
һ�еķ���Ԫ�صĸ���
position[1]=1;
for(col=2;
++col)//��col���е�һ������Ԫ����B.data[]�е�λ��
position[col]=position[col-1]+num[col-1];
for(p=1;
p<
++p)//����ת�õ
���Ԫ���Aɨ��һ�Σ�ʵ�־���ת��
{
col=A.data[p].j;
q=position[col];
data[q].i=A.data[p].j;
//���л�����Ԫ�ظ�ֵ
B->
data[q].j=A.data[p].i;
data[q].e=A.data[p].e;
++position[col];
//��position[col]ָ��A�б�����һ������Ԫ����B�еĴ洢λ��
}
}
}
voidoutputTSMatrix(TSMatrix*M)
intp,q;
intt=1;
for(p=1;
=M->
m;
p++)
{
for(q=1;
q<
n;
q++)
{
if(M->
data[t].i==p&
&
M->
data[t].j==q)
{
printf("
%d"
M->
data[t].e);
t++;
}
elseprintf("
0"
);
}
printf("
\n"
}
voidmain()
TSMatrixA,T;
intk;
���������Ĵ�С\n:
"
������:
scanf("
%d"
&
A.m);
A.n);
���������Ԫ�صĸ���:
A.tu);
��������Ԫ���(��ʽΪ���к��к�Ԫ��ֵ):
for(k=1;
k<
k++)
scanf("
%d%d%d"
A.data[k].i,&
A.data[k].j,&
A.data[k].e);
ԭ����\n"
outputTSMatrix(&
A);
FastTransposeTSMatrix(A,&
T);
ת�ú
�ľ���\n"