数据结构稀疏矩阵三元组的装置源代码
时间: 2023-11-26 16:46:16 浏览: 91
```C++
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 12500
typedef struct {
int i, j;
int e;
} Triple;
typedef struct {
Triple data[MAXSIZE + 1];
int mu, nu, tu;
} TSMatrix;
int CreateSMatrix(TSMatrix *M) {
int i, j, k, m, n, t;
printf("请输入矩阵的行数、列数、非零元素个数:");
scanf("%d%d%d", &m, &n, &t);
if (m < 1 || n < 1 || t > m * n) {
printf("参数不合法!\n");
return 0;
}
M->mu = m;
M->nu = n;
M->tu = t;
printf("请按行序顺序输入非零元素的行、列、值:\n");
for (k = 1; k <= t; k++) {
scanf("%d%d%d", &i, &j, &M->data[k].e);
if (i < 1 || i > m || j < 1 || j > n) {
printf("参数不合法!\n");
return 0;
}
M->data[k].i = i;
M->data[k].j = j;
}
return 1;
}
void PrintSMatrix(TSMatrix M) {
int i, j, k = 1;
for (i = 1; i <= M.mu; i++) {
for (j = 1; j <= M.nu; j++) {
if (i == M.data[k].i && j == M.data[k].j) {
printf("%d ", M.data[k].e);
k++;
} else {
printf("0 ");
}
}
printf("\n");
}
}
int main() {
TSMatrix M;
CreateSMatrix(&M); PrintSMatrix(M);
return 0;
}
```
--相关问题--:
1. 什么是稀疏矩阵?
2. 除了三元组存储方式,还有哪
阅读全文