【数据结构】--稀疏矩阵的三元组表示方式
程序员文章站
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");
}
}
上一篇: 实现稀疏矩阵(用三元组表示)的转置操作
下一篇: 三元组顺序表表示的稀疏矩阵转置Ⅱ