1 设计题目
1.1 稀疏矩阵相乘
2 问题描述
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节
省存储空间,提高计算效率。实现一个能进行稀疏矩阵乘法运算的运算器。
以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相乘的运算。
稀疏矩阵采用十字链表表示,而运算结果的矩阵则以通常的阵列形式列出
3 设计
3.1 用十字链表存储稀疏矩阵
Typedef struct OLNode{
Int i , j ;
ElemType e;
Struct OLNode * right, * down;
}OLNode; *OLink;
Typedef struct{
OLink * rhead, * chead;
Int mu,nu,tu;
}CrossList;
3.2 稀疏矩阵相乘主要算法设计
Statue CreateSMatrix_OL (CrossList & M){
//创建稀疏矩阵 M。
If (M) free(M);
Scanf (&m,&n,&t);
M.mu:=m; M.nu:=n; M.tu:=t;
If (! ( M.rhead=(OLink * )malloc( (m+1) * sizeof(OLink) ) ) ) exit (OVERFLOW)
If (! ( M.chead=(OLink * )malloc( (n+1) * sizeof(OLink) ) ) ) exit (OVERFLOW)
评论0