稀疏矩阵的转置问题
B存放转置前,用三元组表示,C为转置后void transpmatrix(spmatrix B,spmatrix C)
{
int i,j,t,m,n;
int x[100] /*用来存放B中每一列非0元素个数*/
int y[100] /*存放C中每一行非0元素个数*/
m=B[0][0];n=B[0][1];t=B[0][2];
C[0][0]=n;C[0][1]=m;C[0][2]=t;
if(t>0)
{
for(i=0;i<n;i++) x[i]=0; /*初始化数组*/
for(i=1;i<=t;i++)
x[B[i][1]=x[B[i][1]]+1`; /*统计B中每一列非0元素*/
/*求矩阵C中每一行非0元素三元组的起始位置*/
y[0]=1;
for(i=1;i<n;i++)
y[i]=y[i-1]+x[i-1];
for(i=1;i<=t;i++)
{ /*将B中非0元素交换行号,列号后写入C中其最终的位置上*/
j=y[B[i][1]]; 这个怎么解,它是怎样存放的,它的形式怎么样
C[j][0]=B[i][1];
C[j][1]=B[i][0];
C[j][2]=B[i][2];
y[B[i][1]]=j+1; 还有这个,不理解
}
}
}谁能帮我分析一下这个函数
[ 本帖最后由 hdshdzh 于 2010-6-29 19:04 编辑 ]