稀疏矩阵如图所示,4行7列的矩阵一共28个元素,但是非零元素仅仅有5个。为了节省存储空间,实际上我们只需要存储这5个元素即可。
稀疏矩阵的存储一共有三种方式:
1.三元组顺序表方式存储。
2.行逻辑链接的顺序表。
3.十字链表法。
这篇是三元组顺序表方式存储的代码实现。
代码实现以及测试结果:
#include<stdio.h>
#include<stdlib.h>
/*
稀疏矩阵的三元组顺序表存储方式
*/
#define MaxSize 20 //该稀疏矩阵中有效元素的个数最大为20个
#define N 4 //N是矩阵的行数
#define M 7 //M是矩阵的列数
typedef struct {
int q,w; //q行标 w 列标
int value; //对应的元素值
}triple;
typedef struct {
triple data[MaxSize];
int n,m; //n,m是稀疏矩阵的行数和列数。
int length; //data中真实有效的元素个数, 初始时为0
}TSMatrix;
//矩阵的展示。
void disPlay(TSMatrix matix){
//此处的i j 分别是行标 列标
for(int i=1; i<=matix.n;i++){
for(int j=1;j<=matix.m;j++){
int flag = 0;