稀疏矩阵的三元组
—— 头文件
#include <stdio.h>
#define number 3
结构体声明三元组
typedef struct {
int i, j;
int data;
} triple;
结构体声明稀疏矩阵
typedef struct {
triple data[number];
int n, m, num;
} TSMatrix;
构造增添三元组元素的函数
int index = 0;
void appendElement(TSMatrix *thisM, int i, int j, int data){
thisM->data[index].i = i;
thisM->data[index].j = j;
thisM->data[index].data = data;
index++;
}
构造展示稀疏矩阵的函数
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");
}
}
—— 主函数
int main() {
TSMatrix M;
M.m = 3;
M.n = 3;
M.num = 3;
appendElement(&M, 1, 1, 1);
appendElement(&M, 2, 3, 5);
appendElement(&M, 3, 1, 3);
display(M);
return 0;
}