稀疏矩阵三元组表示
程序员文章站
2022-03-05 16:20:18
...
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void creat(int (*A)[4],int m,int n,int (*B)[4])
{
int k=1;
int i,j;
for(i=0;i<m;++i)
for(j=0;j<n;++j)
{
if(A[i][j]!=0)
{
B[k][0]=A[i][j];
B[k][1]=i;
B[k][2]=j;
k++;
}
}
B[0][0]=k-1;
B[0][1]=m;
B[0][2]=n;
}
void print(int B[][4])
{
int i,j,k=1;
for(i=0;i<B[0][1];++i)
{
for(j=0;j<B[0][2];++j)
{
if(i==B[k][1]&&j==B[k][2])
{
printf("%d ",B[k++][0]);
}
else printf("0 ");
}
printf("\n");
}
}
int main()
{
int A[][4]={{0,0,0,1},{0,0,3,2},{1,0,0,0},{0,2,0,0}};
int B[4][4];
creat(A,4,4,B);
print(B);
return 0;
}
上一篇: 找矩阵中的最大正方形