#include
#include
#define ElementType inttypedefstruct GNode *GList;structGNode{int row; //所在行数
int col; //所在列数
GList right;
GList down;int Tag; /*Tag作为标志域,区分union中是什么数据:0表示节点是头节点head,1表示节点是非零元素节点Term*/ElementType value;//数据域
};
GList head;//制作空表并初始化行和列的头结点,返回头指针
GList MakeEmpty(int row_number,intcol_number){
GList PtrL;
PtrL= (GList)malloc(sizeof(structGNode));
PtrL->row = row_number; //头结点的row和col存储稀疏矩阵的总行数和总列数
PtrL->col =col_number;
PtrL->Tag = 0;
GList temp_row=PtrL;
GList temp_col=PtrL;for (int i = 0; i < row_number; ++i){
temp_row->down = (GList)malloc(sizeof(structGNode));
temp_row= temp_row->down;
temp_row->Tag = 0;
temp_row->row = 0;
temp_row->c