数据结构第5章-12级学案.ppt

②三元组表的转置 ???  方法一:简单地交换a-data中i和j中的内容,得到按列优先顺序存储倒b-data;再将b-data重排成按行优先顺序的三元组表。 ???   1 0 4 0 ②三元组表的转置 ???  方法二:由于A的列是B的行,因此,按a-data的列序转置,所得到的转置矩阵B的三元组表b-data必定是按行优先存放的。 ???  按这种方法设计的算法,其基本思想是:对A中的每一列col(0≤col≤a-n-1),通过从头至尾扫描三元组表a-data,找出所有列号等于col的那些三元组,将它们的行号和列号互换后依次放入b-data中,即可得到B的按行优先的压缩存储表示。 void TransMatrix(TriTupleTable *b,TriTupleTable *a) {//*a,*b是矩阵A、B的三元组表表示,求A转置为B ? int p,q,col;//三元组表中数组元素下标 ? b-m=a-n; b-n=a-m; //A和B的行列总数互换 ? b-t=a-t; //非零元总数 ? if(b-t=0) ????? Error(A=0); //A中无非零元,退出 ? q=0; ? for(col=0;cola-n;col++) //对A的每一列 ??? for(p=0;pa-t;p++) //扫描A的三元组表 ????? if(a-data[p].j=

文档评论(0)

1亿VIP精品文档

相关文档