数据结构实验报告稀疏矩阵运算

上传人:痛*** 文档编号:85528918 上传时间:2022-05-05 格式:DOC 页数:10 大小:158KB
返回 下载 相关 举报
数据结构实验报告稀疏矩阵运算_第1页
第1页 / 共10页
数据结构实验报告稀疏矩阵运算_第2页
第2页 / 共10页
数据结构实验报告稀疏矩阵运算_第3页
第3页 / 共10页
点击查看更多>>
资源描述
教学单位计算机科学与技术 学生学号5数据结构 课程设计报告书题目稀疏矩阵运算器学生豹专业名称软件工程指导教师志敏实验目的:深入研究数组的存储表示和实现技术,熟悉广义表存储结构的特性。需要分析:稀疏矩阵是指那些多数元素为零的矩阵。利用稀疏特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。要求以带行逻辑信息的三元组顺序表存储稀疏矩阵,实现两矩阵的相加、相减、相乘等运算。输入以三元组表示,输出以通常的阵列形式列出。软件平台:Windows 2000,Visual C 6.0或WINTC概要设计:ADT Array 数据对象:D = aij | 0ib1-1, 0 jb2-1数据关系:R = ROW, COL ROW = | 0ib1-2, 0jb2-1 COL = | 0ib1-1, 0jb2-2基本操作:CreateSMatrix; /操作结果:创建稀疏矩阵M.Print SMatrix; /初始化条件: 稀疏矩阵M存在./操作结果:输出稀疏矩阵M.AddSMatrix;/初始化条件: 稀疏矩阵M与N的行数和列数对应相等./操作结果:求稀疏矩阵的和Q=M+N.SubSMatrix;/初始化条件: 稀疏矩阵M与N的行数和列数对应相等./操作结果:求稀疏矩阵的差Q=M-N.MultSMatrix;/初始化条件: 稀疏矩阵M的列数等于N的行数./操作结果:求稀疏矩阵的乘积Q=M*N. ADT Array调试测试:初始界面矩阵的加法矩阵的减法矩阵的转置矩阵的乘法程序源码:#include #include #include #define MAXSIZE 40 /假设非零元素个数的最大值为40 #define MAXRC 20/假设矩阵的最大行数为20typedef int ElemType; typedef struct int i,j; /非零元的行下标和列下标 ElemType e; /非零元的值 Triple; typedef struct Triple dataMAXSIZE+1; int rposMAXRC+1; /各行第一个非零元在三元组的位置表 int hs,ls,fls; TSMatrix,*Matrix; void Creat int i,k; fori=1;i M.rposi=0; printf请输入矩阵的行数、列数和非零元个数:; scanf; fori=1;iprintf请用三元组形式输入矩阵的元素:; scanf; fori=1,k=1;i M.rposi=k; whileM.datak.i=i & kk+; void Xiangjia int a,b,temp,l; C.hs=A.hs;C.ls=A.ls;a=b=l=1;whilea=A.fls & b if ifA.dataa.jC.datal+=A.dataa+; else ifB.datab.jC.datal=B.datab; C.datal+.e=n*B.datab+.e;elsetemp=A.dataa.e+n*B.datab.e; ifC.datal=A.dataa; C.datal.e=temp; l+; a+;b+; else ifA.dataa.iC.datal+=A.dataa+; else C.datal=B.datab; C.datal+.e=n*B.datab+.e; whileaC.datal+=A.dataa+; whilebC.datal=B.datab; C.datal+.e=n*B.datab+.e; C.fls=l-1; int Xiangcheng int arow,brow,ccol,tp,p,q,t; int ctempMAXRC+1; ifreturn 0; Q.hs=A.hs;Q.ls=B.ls;Q.fls=0;if forarow=1;arow forccol=1;ccol ctempccol=0; Q.rposarow=Q.fls+1; ifarowtp=A.rposarow+1;elsetp=A.fls+1;forp=A.rposarow;pbrow=A.datap.j;ifbrowt=B.rposbrow+1;elset=B.fls+1;forq=B.rposbrow;qccol=B.dataq.j;ctempccol+=A.datap.e*B.dataq.e; forccol=1;ccolif ifMAXSIZEreturn 0; Q.dataQ.fls.i=arow; Q.dataQ.fls.j=ccol; Q.dataQ.fls.e=ctempccol; return 1; void Print_SMatrix int k,l,n; Matrix p; p=&M; fork=1,n=1;khs;k+ forl=1;lls;l+ ifdatan.i=k & p-datan.j=l printfdatan.e; n+; else printf; printf; printf; void Zhuanzhiint q,col,p;b-hs=a-ls;b-ls=a-hs;b-fls=a-fls;ifflsq=1;forcol=1;colls;col+ forp=1;pfls;p+ifdatap.j=colb-dataq.i=a-datap.j;b-dataq.j=a-datap.i;b-dataq.e=a-datap.e;+q;void Destory_SMatrix M.hs=M.ls=M.fls=0; void main TSMatrix A,B,C; TSMatrix *p=&A,*q=&B;int flag,n; while system;printf; printf; printf;printf; printf; printf; printf; printf; printf;printf;printf; scanf; ifbreak; Creat; printf; Print_SMatrix; switch case 1:Creat;n=1; printf; Print_SMatrix; if printf; Xiangjia;Print_SMatrix; else printf; break; case 2: Creat;n=-1; printf; Print_SMatrix; if printf; Xiangjia; Print_SMatrix; else printf; break; case 3: printfB:n; Zhuanzhi; Print_SMatrix;break; case 4:Creat; printf; Print_SMatrix; printf; n=Xiangcheng; ifprintf; elsePrint_SMatrix;break; default:printf; Destory_SMatrix; Destory_SMatrix; Destory_SMatrix; getchar;getchar;printf;getchar;小结:10 / 10
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!