#include <stdio.h>
#include <stdlib.h>
#define MAX 100
/*
用典型的多重链表(十字链表)存储稀疏矩阵
设计要点:
1 用数组存储head,数组中的第一个元素
col:矩阵的列数,row:矩阵的行数,value:非0元素个数
2 行和列都是循环链表
3 实现了三个方法:初始化,插入,打印
*/
/*稀疏矩阵
18 0 0
A= 0 27 0
0 0 0
23 -1 0
*/
//定义结构
typedef struct _SparseMatrix{
struct _SparseMatrix *Down;
struct _SparseMatrix *Right;
union {
struct{
int row;
int col;
int value;
};
struct _SparseMatrix* Next;
}URegion;
}SparseMatrix;
//初始化一个稀疏矩阵
void smInitialize(SparseMatrix *smArray[],int row,int col);
//插入一个非0的元素 ,已有则替换
void smInsertTerm(SparseMatrix* mySM[],int row,int col,int value);
//给矩阵,循环打印非0元素
void smPrint(SparseMatrix* mySM);
//查找某一位置是否是非零元素,是返回1,否返回0
int smFindTerm(SparseMatrix* mySM[],int row,int col);
//删除某一位置的非零元素,删除返回1,否则返回0
int smDeleteTerm(SparseMatrix* my
用典型的多重链表(十字链表)存储稀疏矩阵
最新推荐文章于 2024-04-04 15:34:37 发布