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已存在;