稀疏矩阵压缩存储的三元组表示法

来源:互联网 发布:mysql查看root密码 编辑:程序博客网 时间:2024/06/06 09:47
/*稀疏矩阵压缩存储的三元组表示法*/#include<stdio.h>typedef struct node{    int i;              /*元素所在行号*/    int j;              /*元素所在列号*/    int x;              /*元素值*/}NODE;typedef struct spmatrix{    int mu;             /*行数*/    int nu;             /*列数*/    int tu;             /*元素个数*/    NODE data[5];}SpMatrixTp;/*二维矩阵转换为三元组*/Spmatrix(int x[5][6],SpMatrixTp *a){    int i,j,q=0;    for(i=0;i<5;i++)        for(j=0;j<6;j++)        if(x[i][j]!=0)    {        q++;        (*a).data[q].i=i;        (*a).data[q].j=j;        (*a).data[q].x=x[i][j];    }    (*a).mu=i;    (*a).nu=j;    (*a).tu=q;}main(){    SpMatrixTp a;    int A[5][6]={0},i,j;    A[0][1]=5;    A[2][1]=1;    A[2][3]=7;    A[3][1]=6;    A[4][4]=9;    printf("----原稀疏矩阵----\n");    for(i=0;i<5;i++)        for(j=0;j<6;j++)        {            printf("%3d",A[i][j]);            if(j==5)                printf("\n");        }    Spmatrix(A,&a);    printf("----压缩存储的三元组----\n");    for(i=1;i<=a.tu;i++)        printf("%d %d %d\n",a.data[i].i,a.data[i].j,a.data[i].x);}
阅读全文
0 0