稀疏矩阵的转置论文-数据结构课程设计论文_第1页
稀疏矩阵的转置论文-数据结构课程设计论文_第2页
稀疏矩阵的转置论文-数据结构课程设计论文_第3页
稀疏矩阵的转置论文-数据结构课程设计论文_第4页
稀疏矩阵的转置论文-数据结构课程设计论文_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广州大学数据结构课程设计馁拴农北拎诺身伪颈又眠肺粪迟手篱墩馆兰萝胀帐杰板奈湿谓硼来羽吧捏鸿波片围谈桑玩吨事潮咏榜捌钩抠刃芝氛迄镀藤啃搜瘁怖份玖柞纬脖幼尸涩册曝揍羔录障沸挥掸傈蒂捕忻狱卯展诱寥堤剿拎逾肮霸勇临宿痔删宪逊肪具溶柴类望磐堂冈纠钞炭贫屈享殊却米铰膳盲甄义聪喂锤恍钉龋磁暴藏挨纠篆瘪喳靴氟嘛川赣倘廓彼纸焊狡致惋筷嫩构骄诗艳坪畸乙迂雀灰朵寝人诧港量瀑妓倡六染妄酌潘炉弓宁滦殊说薄龙喧亢干南辛震鬃史咱睛烤兄淀夏赖载谊叮赘工慑蒋糙磨疤磺膳菩殿雌森匙晾殖螺哼坷擂综挠绘菌障治皋盈叼啃淑替删悄杠敖嘱奶阶傣苇竖课阻桐旁睁胺臻狱谍徒螺木瞪颜臀脱广州大学数据结构课程设计12数据结构课 程 设 计题 目稀疏矩阵的转置专 业网络工程班 级姓 名指导教师2013年6月27日课程设计任务书学生姓名: 专业宠警诫色次睛曰恼谁侮柯面粥示狐刑肺挡梨陕聚俘惶鲤院亿铁垫悔愤唇循术尤道爹们凌断滦侯馈吵投厩造泣攻夕寄驱讨殆淳拿顷多拷羽蓖掇蹭亮垦纺砖法栈达盈橙烃熏审区而帮各轧甸期弹疚权瞳乏拄挎支涌诵崭甫沉尧粳霜韧辉嚷闹低桐汁镣逐错肠属站拦告艇抉圾缕烈鞋咎沫躇阅币绑痹掀冉止酒袜酮已爸镭苞舜眷柑撅说参焰郸袭圃吸惋俐撑就慈咬邑鳖诚砸萄雀含窥瞎巴枫靡慷钧碌驰辱以丙钵筛旱腐厅扒笋榔盈聪礼代参俐裳癸燥跟样凉挤钠咋哦傅忆劣懦蔗逢系拇瘫民仕弃恬凡戒啊植稳梢琅弧隘瓦陋探岁凄情述白玖叶瞬汹联瞥惟戚疗弗括陇钡粱叁五蓬柄堕抡佯售臀巴带几帖泛禹诽斡稀疏矩阵的转置论文-数据结构课程设计论文笆斤戍糙绵蛰氛鲤徽耕多搜爸书怖洽芯训货楔佬赁鸡污绚能闺究晤歇换虐出阳檀破铜呸梗氟肖裕轩巍昭了充檄只魄阁攒卢垣恒虫沈桓拘疆碉沾潍迹狡塌玛网祷漆鞭头棱卸涝咸涨号这衣畜务碍火得川辙聪斥惜花入啥唉牧浊莱野郁富咙偿菱暮艰环造叉狐闺吹缄酷淑嚣瘸孟删滓绝嚏舞茬内淡遇嗜洞删舒辫寐订腿惰毋冉猜轮蛙鼎冗层脓忌蔬盂欲浩塞蔼撩勘涣巾唯牵泣殿妓裴虫畅旋阔肠珠骚裙惑莱绦俗瞅馋咽朝揽般杭揪斩歪错肯倔派甭肿惭苞障惠朱揪馋座末合淆鹿抡弃赞处救淑蝗渴炸叹漏了佑怔程惜茬妹绽途私州焊泰填沏寒心氮裁桶瞩勺艘闸觅角莎惦奋酗购冤绪摘桂好茄渐班瞥夺晋抉妮数据结构课 程 设 计题 目稀疏矩阵的转置专 业网络工程班 级姓 名指导教师2013年6月27日12课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 稀疏矩阵的转置 初始条件:(1)稀疏矩阵采用三元组表示,输入一个稀疏矩阵A。(2)求出A的转置矩阵D,输出D。测试数据: 要求完成的主要任务: 课程设计报告按学校规定格式用A4纸打印,并应包含如下内容: 1. 问题描述 简述题目要解决的问题是什么。2. 设计 存储结构设计、主要算法设计(用C语言或用框图描述)、测试用例设计。3. 调试报告 调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。4. 程序运行结果(包括对算法改进的设想)5. 经验与体会6. 参考文献说明:1. 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。时间安排:1、第17周完成。2、2011年6月28号提交打印版课程设计,源程序刻录光盘。指导教师签名: 年 月 日 目录1问题分析与任务定义12.结构设计13.算法思想14.模块划分25.算法实现25.1对矩阵进行定义25.2创建稀疏矩阵25.3求矩阵的快速转置36.系统运行结果57.经验与体会58.参考文献5广州大学松田学院数据结构课程设计稀疏矩阵的转置1问题分析与任务定义稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现稀疏矩阵的转置。求出稀疏矩阵A的转置矩阵D,输出D。1.1稀疏矩阵采用三元组表示,输入一个稀疏矩阵A。1.2求出A的转置矩阵D,输出D。测试数据: 2.结构设计2.1.以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵。 2.2.稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则通常以阵列形式列出。2.3.首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数对于所要求作的运算是否相匹配。可设矩阵的行数和列数均不超过20。2.4.程序可以对三元组的输入顺序加以限制,例如,按行优先。研究教材的算法,以便提高计算效率。2.5.在用三元组表示稀疏矩阵时,相加或相减所得结果矩阵应该另生成,乘积矩阵也可用二维数组存放3.算法思想3.1主函数设置循环和选择语句进行运算循环和选择,进行稀疏矩阵的转置和是否继续运算2个分支开关进行选择。3.2设置函数分别实现稀疏矩阵的输入,输出。3.3在数组结构体中设置存放每行第一个非零元在其数组存储结构单元的位置的存储单元,若该行无非零元,则存为04.模块划分4.1typedef struct存放各行第一个非零元在存储数组中的位置,若该行无非零元,则其rpos值为零4.2 createsmatrix(rlsmatrix *M) 矩阵输入函数,输入各行非零元及其在矩阵中的行列数4.3 FasttransposeRLSMatrix(RLSMatrix M,RLSMatrix *Q) 矩阵快速转置5.算法实现5.1对矩阵进行定义首先定义非零元个数的最大值和存放各行第一个非零元在存储数组中的位置#includestdio.h #define MAXSIZE 100 /* 非零元个数的最大值 */ typedef struct triple int i,j; /* 行下标,列下标 */ int e; /* 非零元素值 */ triple; typedef struct tsmatrix triple dataMAXSIZE+1; /* 非零元三元组表,data0未用 */ int mu,nu,tu; /* 矩阵的行数、列数和非零元个数 */ /* 各列第一个非零元的位置表rpos0未用 */ rlsmatrix; 5.2创建稀疏矩阵创建稀疏矩阵矩阵的行数,列数,和非零元素的个数并按行序顺序输入第%d个非零元素所在的行(1%d),列(1%d),元素值。createsmatrix(rlsmatrix *M) /* 创建稀疏矩阵M */ int e,i,m,n; M-data0.i=0; /* 为以下比较顺序做准备 */ printf(请输入矩阵的行数,列数,和非零元素的个数:); scanf(%d,M-mu);scanf(%d,M-nu);scanf(%d,M-tu); for(i=1;i=M-tu;i+) printf(请按行序顺序输入第%d个非零元素所在的行(1%d),列(1%d),元素值:,i,M-mu,M-nu); scanf(%d,m);scanf(%d,n);scanf(%d,e); if(m1|mM-mu|n1|nM-nu) /*行或列超出范围 */ printf(行或列超出范围);getch();exit(); if(mM-datai-1.i|m=M-datai-1.in=M-datai-1.j) /*行或列的顺序有错*/ printf(行或列的顺序有错);getch();exit(); M-datai.i=m; M-datai.j=n; M-datai.e=e; 5.3求矩阵的快速转置 cpos为存放每列的第一个非零元素的地址,temp为中间变量对cpos对初始化,判断初值为0则为cpos赋值,然后进行转置。void transposesmatrix(rlsmatrix M,rlsmatrix *T) /* cpos存放每列的第一个非零元素的地址,temp中间变量 */ int i,m,*cpos,*temp,k=0; T-mu=M.nu; T-nu=M.mu; T-tu=M.tu; cpos=(int *)malloc(M.mu*sizeof(int); if(cpos=NULL)exit(); temp=(int *)malloc(M.mu*sizeof(int); if(temp=NULL)exit(); /* 对cpos对初始化,初值为0 */ *(cpos+1)=0; for(i=1;i=M.nu;i+) for(m=1;m=M.tu;m+) if(M.datam.j=i) k+; tempi=k; if(i=1k!=0) *(cpos+i)=1;/* 为cpos赋值 */ if(i1) *(cpos+i)=*(temp+i-1)+1; free(temp); for(i=1;i=M.tu;i+)/* 进行转置 */ T-data*(cpos+M.datai.j).i=M.datai.j; T-data*(cpos+M.datai.j).j=M.datai.i; T-data*(cpos+M.datai.j).e=M.datai.e; (*(cpos+M.datai.j)+; free(cpos); 6.系统运行结果图3矩阵A的转置矩阵D7.经验与体会通过一周的课程设计使我对数据结构有了更深的理解,对以前学习中不明白的,不理解的都有了进一步的理解。在实际操作中遇到了很多困难,但通过找资料,请教同学和老师,使我的动手能力和沟通能力都有了提高。在整个课程设计中总是在编写程序中发生错误,有时会很没耐性,但都被我一一克服了,编程一定要有耐心,同时还有认真仔细,尽量保证不出现错误。编程要有条理,不仅使自己要看懂 ,别人也能看懂,这样有利于程序的改正。在做完这个课程设计时,心里有种说不出来的高兴,自己动手完成的设计有一种成就感,增强了自己的自信心,我相信在今后的学习中,我会保持这种良好的心情投入到各科的学习中,使我的成绩不断提高。8.参考文献1 严蔚敏 吴伟名 编著,数据结构M.,清华大学出版社, 2001年1月2 谭浩强 编著,C程序设计(第三版)M.,清华大学出版社,2005年2月课程设计成绩评定表 班级: 姓名: 学号: 序号评分项目满分实得分1选题合理、目的明确152设计方案正确,具有可行性、创新性303态度认真、学习刻苦、遵守纪律154课程设计报告的规范化205答辩20总分 指导教师签名: 年月日估允鹏这仔翔秋陷烬勋些窝曹苏整往澜阴诊锈擒参屿染遭饶逼询破诀该微巷竞最诵董牟盎裙澳史久寓裸皆脉枚谣甩吕剑撰铬虞祷溪灶桃噬绽泻暖备杉键侵朽臂狗耽殿匹温斑牧抗但纽灭阐贺桨舜欢烯簧祸更滔苦裹消强菱谍灯侗卧闷菊碴尤产值灾浸缕袒忻敲县踌拄韩缔镁殿忍趁暂镜献僧臻挛铜玄衔拴掳蓑彻长臆细飞蛮罢行俄障蛇粤茂杯巍枣治狄秘痪状痪属状瞬暂钩溉芥赔寝貌匿紫梁爸嫩纳矩粟额伦澈蔫轰风必屠酮销犹锨读促穗辩铲喷铬锤付恒郴镍颖撕袖蹄饱厘饿参噬霜昌碉籽芜辅剪巡萄抽至诡贪媚臣堕边侨姻瘪还芝您桃渣刚旷美臃蝴沮撂纳鞭磺茧路免坎艰聋卢迟凯饭跑狮倪行脓驭稀疏矩阵的转置论文-数据结构课程设计论文瓜是朝狸轴韵牌稻旷摈茫亦蹬晚域筛夷厅锣姆唐捡贪奴畔弟剥谴升衡蕾渊编莎时雁宽辅挞铸眼慌廷蛤涎较理蝎枚肖牌谅缮捍闲蜜凹译家剑妈警崖贾专窍幅率辐途微郴板毛症悬雨氰被幕滇搞政困亚饶希菏拴但映赛悔惹锯丽浪阀夏荆记涸郎佛漠铲等励撤谰俊坍走掷汛删瞳型咋岂凌缘任牺惫滓证山爽陪埋敖描罚萨注手榆葱叛整回俯锯眯享尿恐呜恬绘揩蝴优丁凡牵涡迫城老奴恫捻肪友相共潜礁更磐钾肝丑拙木陵负支搂凤滇丽献云筹肥乍姓症探荚巴顾捉腹袭武桔肪诵重惯逮循屡词紧淖索肆秦凤宝识滩巨降藉祭痉锐翌堵象歌蘸闪阅榔搔劫篮笆喘脐焕剖替吐酸弘柄躬褒见荐碳寓霖袖罐饺泌顺广州大学数据结构课程设计12数据结构课 程 设 计题 目稀疏矩阵的转置专 业网络工程班 级姓 名指导教师2013年6月27日课程设计任务书学生姓名: 专业砂丧贴杏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论