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

【数据结构】--稀疏矩阵的三元组表示方式

程序员文章站 2022-07-12 09:53:45
...
//矩阵的三元组表示方式;
#include<stdio.h>

#define number 3//假设非零元的行下标的最大值为3; 

typedef struct {
    int i,j;
    int data;
}triple;

typedef struct {
    triple data[number];//非零元三元组表,data[0]未用; 
    int n,m,num;//表示的是矩阵的行数和列数还有非零元个数; 
}TSMatrix;

//输出存储的稀疏矩阵

void display(TSMatrix M);

//主函数; 
int main() {

    TSMatrix M;

    M.m=3;

    M.n=3;

    M.num=3;

 

    M.data[0].i=1;

    M.data[0].j=1;

    M.data[0].data=1;

 

    M.data[1].i=2;

    M.data[1].j=3;

    M.data[1].data=5;

 

    M.data[2].i=3;

    M.data[2].j=1;

    M.data[2].data=3;

    display(M);

    return 0;

}

void display(TSMatrix M){

    for(int i=1;i<=M.n;i++){

        for(int j=1;j<=M.m;j++){

            int value =0;

            for(int k=0;k<M.num;k++){

                if(i == M.data[k].i && j == M.data[k].j){

                    printf("%d ",M.data[k].data);

                    value =1;

                    break;

                }

            }
            if(value == 0)

                printf("0 ");

        }

        printf("\n");

    }

}


相关标签: C语言