您的位置:首页 > 其它

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

2017-05-16 11:21 323 查看
/*稀疏矩阵压缩存储的三元组表示法*/
#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐