1 / 12
文档名称:

数据结构实验.doc

格式:doc   大小:108KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验.doc

上传人:scuzhrouh 2020/6/23 文件大小:108 KB

下载得到文件列表

数据结构实验.doc

相关文档

文档介绍

文档介绍:计算机系数据结构实验报告(1)姓名:孟红波学号:6100410179专业班级:卓越101班实验目的:深入研究数组的存储表示和实现技术,着重掌握对稀疏矩阵的表示方法及其运算的实现。问题描述:稀疏矩阵是指那些多数元素为零的矩阵。利用‘稀疏’特点进行存储和计算可以大大节省存储空间,提高效率。通过对稀疏矩阵的存储表示,实现矩阵的基本操作。实验要求:1、要求矩阵的输入形式采用三元组表示,以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵。2、设计矩阵的逆置算法,实现矩阵的逆置。3、实现两个稀疏矩阵的相加、相减和相乘等运算。4、要求运算结果的矩阵则以通常的数组形式出现。实验内容和过程:实验步骤首先应输入矩阵的行数和列数、并判别给出的两个矩阵的行、列数对于所要求的运算是否相匹配;以三元组的形式输入矩阵;调用矩阵的逆置子函数、相加函数和相乘函数;分析输出结果,并进行总结。输入数据:210000003200100003-1210000003000000002+=2100000052***********=0006实验程序:#include<iostream>#include<iomanip>usingnamespacestd;constintMAXSIZE=100;constintMAXROW=10;typedefstruct{inti,j;inte;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;}TSMatrix;typedefstruct{Tripledata[MAXSIZE+2];intrpos[MAXROW+1];intmu,nu,tu;}RLSMatrix;template<classP>boolInPutTSMatrix(P&T,inty){cout<<"输入矩阵的行,列和非零元素个数:"<<endl;cin>>>>>>;cout<<"请输出非零元素的位置和值:"<<endl;intk=1;for(;k<=;k++)cin>>[k].i>>[k].j>>[k].e;returntrue;}template<classP>boolOutPutSMatrix(PT){intm,n,k=1;for(m=0;m<;m++){for(n=0;n<;n++){if(([k].i-1)==m&&([k].j-1)==n){(4);cout<<[k++].e;}else{(4);cout<<"0";}}cout<<endl;}returntrue;}boolTransposeSMatrix(){TSMatrixM,T;//定义预转置的矩阵InPutTSMatrix(M,0);//输入矩阵intnum[MAXROW+1];intcpot[MAXROW+1];//构建辅助数组intq,p,t;=;=;=;if(){for(intcol=1;col<=;col++)num[col]=0;for(t=1;t<=;t++)++num[[t].j];cpot[1]=1;for(inti=2;i<=;i++)cpot[i]=cpot[i-1]+num[i-1];//求出每一列中非零元素在三元组中出现的位置for(p=1;p<=;p++){col=[p].j;q=cpot[col];[q].i=col;[q].j=[p].i;[q].e=[p].e;++cpot[col];}}cout<<"输入矩阵的转置矩阵为"<<endl;OutPutSMatrix(T);returntrue;}boolCount(RLSMatrix&T){intnum[MAXROW+1];for(intcol=1;col<=;col++)num[col]=0;for(col=1;col<=;col++)++num[[col].i];[1]=1;for(inti=2;i<=;i++)[i]=[i-1]+num[i-1];returntrue;}boolMultSMatrix(){RLSMatrixM,N,Q;InPutTSMatrix(M,1);InPutTSMatrix(N,1);Count(M);Count(N);if(!=)returnfalse;=;=;=0;//Q初始