写一个创建稀疏矩阵相应三元组的算法。

作者在 2008-04-15 10:29:33 发布以下内容

创建稀疏矩阵相应三元组的算法如下所示:

#define MAXSIZE 1000 /*假设非零元个数的最大值是1000*/

typedef struct

{

int i, j;

elemtype v;

}triple;

typedef struct

{

triple data[MAXSIZE+1]; /*data[0]用于存放稀疏矩阵行,列和非零元个数*/

int mu, nu, tu; /*稀疏矩阵行、列和非零元的个数*/

} spmatrix;

spmatrix a;

void CreatTripleTable (int array_a[M][N],spmatrix a)

/*array_a是一个稀疏矩阵,a是产生的相对应的三元组存储*/

{

int i,j,k=1;

for (i=0;i<M;i++) /*按行优先顺序扫描array_a的元素,不为0者存入B*/

   for (j=0;j<N;j++)

      if (array_a[i][j]!=0)

      {

         a.data[k].i=i;

         a.data[k].j=j;

        a.data[k].v = array_a[i][j];

         k++;

      }

   a.data[0][0]=M;

      a.data[0][1]=N;

   a.data[0][2]=k-1;/*存入非0元素个数*/

}/*CreatTripleTable*/

文章评论,共0条
游客请输入验证码
浏览56292次
最新评论