/*广义表的定义
typedef struct GNode *GList;
struct GNode{
int Tag; //标志域:0表示结点是单元素,1表示结点是广义表
union{ //子表指针域SubList与单元素数据域Data复用,即共用存储空间
ElementTtype Data;
GList SubList;
}URegion;
GList Next; //指向后继结点
};
*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
/*
用十字链表存储稀疏矩阵
设计要点:
1.用数组存储head,数组中的第一个元素
col:矩阵列数,row:矩阵行数,value:非零元素的值
2,行和列均用循环链表实现
3.实现了三个方法:初始化,插入,打印
*/
/* 稀疏矩阵
A= 18 0 0
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);
//插入一个非零元素,已有则替换
十字链表存储稀疏矩阵
最新推荐文章于 2024-04-04 15:34:37 发布