十字链表的创建

这段代码展示了如何使用十字链表创建稀疏矩阵。通过输入矩阵的行数、列数和非零元素数量,程序动态分配内存并按行优先顺序插入非零元素到十字链表中。
摘要由CSDN通过智能技术生成
#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&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值