数据结构课程设计:稀疏矩阵操作

来源:百度知道 编辑:UC知道 时间:2024/09/21 00:32:24
任务:(1)完成一稀疏矩阵转置,(2)能够完成两个稀疏矩阵相加,(3)输出稀疏矩阵
最好能写明:存储结构、稀疏矩阵相加的基本过程的算法(可以使用程序流程图) 、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法(不用全写,有多少算多少)
分数可再追加,,。希望得到大家的帮助,先谢过了,

一、需求分析
二、概要设计
三、详细设计:Cpp1.cpp
四、调试分析
五、用户手册及测试数据:执行Cpp1.exe
六、附录

[数据结构] 数据结构稀疏矩阵加法实验报告

一、需求分析
假设稀疏矩阵M和N均以三元组表作为存储结构,试写出矩阵相加的算法 ;
另设三元组表存放结果矩阵。
处理要求:
1.输入稀疏矩阵M和N。
2.检测M和N能否相加
3.矩阵相加运算
4.打印输出结果
矩阵相加测试实例:输入
M= ,N=

二、概要设计
1.稀疏矩阵三元数组定义如下:
ADT SparseMatrix {
数据对象:
m和n分别称为矩阵的行数和列数 }
数据关系:R={ Row, Col }

基本操作:
CreateSMatrix (&M) ;
操作结果:创建稀疏矩阵M。
AddSMatrix (M, N, &Q) ;
初始条件:稀疏矩阵M与N的行数列数相等。
操作结果:求得Q=M+N。
PrintSMatrix (M) ;
初始条件:稀疏矩阵M存在。
操作结果:输出稀疏矩阵M。
} ADT SparseMatrix

①.输入稀疏矩阵M和N。
CreateSMatrix_M (TSMatrix &M) //新建稀疏矩阵M
{ 输入矩阵M的行数,列数和非零元素个数
输入非零元素的行下标,列下标和值 }

// 稀疏矩阵相加,稀疏矩阵用数组来表示
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <memory.h>

typedef struct
{
int row;
int col;