对稀疏矩阵进行压缩存储方法一般有两种 分别为三元组顺序表和十字链表
已帮助 人
回答
共1条回复-
(1)传统转置算法
Status TransposeSMatrix(TSMatrix M,TSMatrxi &T){
T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;
if (T.tu){
q=1;
for (col=1;col<=M.nu;col++)
for (p=1;p<=M.tu;p++)
if (M.data[p].j==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;
}
}
return OK;
}// TransposeSMatrix
(2)快速转置算法
Status FastTransposeSMatrix( TSMatix M,TSMatrix &T){
T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;
if (T.tu){
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++) copt[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];
}//for p
}//if
return OK;
} //FastTransposeSMatrix

