#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef int Status;
typedef struct OLNode{
int col, row;
ElemType value;
struct OLNode *down, *right;
}OLNode, *OLink;
typedef struct{
OLink *rhead, *chead;//行、列链表头指针
int mu, nu, tu;
}CrossList;
Status CreateSMatrix_OL(CrossList *M){//创建稀疏矩阵M, 采用十字链表存储
int m, n, t;
int i, j, v;
OLink p, q;
if(M){
free(M);
}
scanf("%d%d%d", &m, &n, &t);
M -> mu = m;
M -> nu = n;
M -> tu = t;
M -> rhead = (OLink *)malloc((m + 1) * sizeof(OLink));
M -> chead = (OLink *)malloc((n + 1) * sizeof(OLink));
if(! M -> rhead){
exit(0);
}
if(! M -> chead){
exit(0);
}
M -> rhead = M -> chead = NULL;//初始化行列头指针向量,各行列链表为空
for(scanf("%d%d%d", &i, &j, &v); i != 0;scanf("%d%d%d&#
十字链表的创建
最新推荐文章于 2024-09-15 14:54:59 发布
这段代码展示了如何使用十字链表创建稀疏矩阵。通过输入矩阵的行数、列数和非零元素数量,程序动态分配内存并按行优先顺序插入非零元素到十字链表中。
摘要由CSDN通过智能技术生成