- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三稀疏矩阵的基本操作用链接存储结构
浙江大学城市学院实验报告
课程名称 数据结构与算法
实验项目名称 实验三 稀疏矩阵的基本操作--用链接存储结构
学生姓名 专业班级 学号
实验成绩 指导老师(签名 ) 日期
实验目的和要求
1.了解稀疏矩阵的三元组线性表存储方法。
2.void InitMatrix(LMatrix M)、②输入稀疏矩阵void InputMatrix(LMatrix M, int m, int n)、③输出稀疏矩阵void OutputMatrix(LMatrix M)、④稀疏矩阵的转置运算LMatrix Transpose(LMatrix M)。把稀疏矩阵的结构定义及基本操作实现函数存放在文件LinkMatrix.h中。
建立主程序文件test3.cpp,在主函数main()中通过调用LinkMatrix.h中的函数进行测试。
填写实验报告,实验报告文件取名为report3.doc。
上传实验报告文件report3.doc与源程序文件LinkMatrix.h及test3.cpp到Ftp服务器上你自己的文件夹下。
三. 函数的功能说明及算法思路
包括每个函数的功能说明,及一些重要函数的算法实现思路
始化稀疏矩阵void InitMatrix(LMatrix M)
输入稀疏矩阵void InputMatrix(LMatrix M, int m, int n)
输出稀疏矩阵void OutputMatrix(LMatrix M)
稀疏矩阵的转置运算LMatrix Transpose(LMatrix M)
四. 实验结果与分析
包括运行结果截图等
五. 心得体会
记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。
本次的实验只要难度在转置算法上。
【附录----源程序】
Test3.cpp
#includeiostream.h
#includestdlib.h
#includeLinkMatrix.h
void main()
{
LMatrix M;
InitLMatrix(M);
int m,n;
cout请输入矩阵的行数与列数:endl;
cinmn;
cout请输入矩阵数据的行列值:endl;
InputLMatrix(M,m,n);
coutM矩阵为:;
OutputLMatrix(M);
coutM的转置矩阵为:;
OutputLMatrix(Transpose(M));
}
LinkMatrix.h
#define MaxRows 10
typedef int ElemType;
typedef struct Node
{
int row, col;
ElemType val;
struct Node *next;
} TripleNode;
typedef struct
{
int m, n, t;
TripleNode *vector[MaxRows+1];
} LMatrix;
void InitLMatrix(LMatrix M)
{
M.m=0; M.n=0; M.t=0;
for (int i=1; i=MaxRows; i++)
M.vector[i] = NULL;
}
void InputLMatrix( LMatrix M, int m, int n)
{
TripleNode *p, *q;
int row, col, val, k=0;
cinrowcolval;
while (row!=0)
{
k++;
p = new TripleNode;
p-row = row;
p-col = col;
p-val = val;
p-next = NULL;
q = M.vector[row];
if (q==NULL)
M. vector[row] = p;
else
{
while (q-next!=NULL)
q=q-next;
q-next=p;
}
cinrowcolval;
}
M.m=m; M.n=n; M.t=k;
}
void OutputLMatrix( LMatrix M)
{
if(M.t==0) return;
int k=1;
cout(;
for (
文档评论(0)