1 / 8 《数据结构》实验报告 ◎实验题目:稀疏矩阵的转置、加法(行逻辑链接表) ◎实验目的:学习使用三元组顺序表表示稀疏矩阵,并进行简单的运算 ◎实验内容:以三元组表表示稀疏矩阵,并进行稀疏矩阵的转置和加法运算。 一、需求分析 该程序目的是为了用三元组表实现稀疏矩阵的转置和加法运算。 1、输入时都是以三元组表的形式输入; 2、输出时包含两种输出形式:运算后得到的三元组表和运算后得到的矩阵; 3、测试数据: (1)转置运算时输入三元组表:1 2 12 1 3 9 3 1 -3 3 6 14 4 3 24 5 2 18 6 1 15 6 4 -7 得到转置后的三元组表:1 3 -3 1 6 15 2 1 12 2 5 18 3 1 9 3 4 24 4 6 -7 6 3 14 (2)进行加法运算时先输入矩阵 A(以三元组表形式):1 1 1 2 2 2 2 3 4 3 1 -4 输入矩阵 B(以三元组表形式):1 3 -2 2 3 -5 3 1 8 3 2 -6 A与 B的和矩阵以矩阵形式输出为:1 0 -2 0 2 -1 4 -6 0 (二) 概要设计 为了实现上述操作首先要定义三元组表,稀疏矩阵: typedef struct { int i,j; int e; }Triple;//三元组 2 / 8 typedef struct { Triple data[MAXSIZE+1]; int mu,nu,tu; }Matrix;//稀疏矩阵 1.基本操作 void CreatMatrix(Matrix *m) 操作结果:创建一个稀疏矩阵。 void PrintMatrix(Matrix m) 初始条件:矩阵m已存在。 操作结果:将矩阵m以矩阵的形式输出。 void FastTransposeMatrix(Matrix a,Matrix *b) 初始条件:稀疏矩阵a已存在; 操作结果:将矩阵a进行快速转置后存入b中。 void AddMatrix(Matrix a,Matrix b,Matrix *c) 初始条件:稀疏矩阵a和b都已存在; 操作结果:将矩阵a和b的和矩阵存入c中。 2.本程序包含了两个模块: (1)头文件模块; 其中包括定义三元组表Triple和稀疏矩阵Matrix,以及创建矩阵void CreatMatrix(Matrix *m)和输出矩阵void PrintMatrix(Matrix m)两个函数; (2)主程序模块; 包括主函数main(),快速转置函数void FastTransposeMatrix(Matrix a,Matrix *b)和实现矩阵相加函数void AddMatrix(Matrix a,Matrix b,Matrix *c) (三) 详细设计 定义三元组和稀疏矩阵类型: typedef struct { int i,j; int e; }Triple; typedef struct { Triple data[MAXSIZE+1]; int mu,nu,tu; }Matrix; 创建头文件:“Matrix.h” void ...