欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

稀疏矩阵三元组表示

程序员文章站 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;
}

 

相关标签: 矩阵