ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:442KB ,
资源ID:4576745      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4576745.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据结构实训-学生分配问题.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构实训-学生分配问题.doc

1、. .XX工学院算法设计技能训练实习报告题目: 学生搭配问题 系 (院):计算机工程学院 专 业: 微软 班 级: 计1137 学 号: 1131317726 姓 名: 陆炎炜 指导教师: 周海岩 学年学期: 2014 2015 学年 第 1 学期2015年 1月 1 日算法设计技能训练任务书课题名称学生搭配问题设计目的1、 通过算法设计技能训练,深入理解算法设计的意义和重要性,更好地掌握算法设计的知识。2、 能够针对某一具体问题,设计算法进行解决。3、 锻炼实践动手能力,提高解决问题的能力。实验环境硬件:1、PC机,奔腾以上CPU, 512MB以上内存,80G以上硬盘;软件:Visual C

2、+编程工具任务要求1、 应用数据结构基础知识进行实际问题求解与分析2、 作为一个完整的系统,应具有友好的界面和较强的容错能力3、 上机能正常运行代码4、 分析算法的运行效率5、 按要求撰写课程设计报告和设计总结工作进度计划序号起止日期工 作 容12014.12.29任务下达,查阅文献资料22014.12.292014.12.31总体设计、素材搜集、课题详细设计、调试32014.12.312015.1.3完善设计、撰写报告42015.1.4答辩指导教师(签章):年月日 摘要 针对学生搭配问题,循环队列是一种重要的链式结构,其特殊性在于需附设 两个指针front和rear分别指示对头元素及队尾元素

3、的位置且对头和队尾相邻接。在程序的设计过程中,运用了各种基本的算法,有判断队空及队满,出队,入队等.循环队列是在队列的顺序存储结构中,除了用乙组地址连续的存储单元依次存放从队列头到队列尾的元素外,尚需附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。学生搭配问题是典型的只有采用循环队列才能解决的问题,实验表明该算法的空间复杂度优于其他算法。 本文用循环队列会很好的把这个程序设计出来,会有很好的效果。得出的程序运行结果能够很形象的把结果表示出来。关键词: 学生搭配数据结构 循环队列目录一、设计目的.二、课程设计. 1、设计内容. 2、设计思想. 3、关键算法. 4、测试结果.

4、三、实验程序.四、结论.五、 致谢.六、参考文献. .word. .一、设计目的1、通过算法设计技能训练,深入理解算法设计的意义和重要性,更好地掌握 算法设计的知识。2、能够针对某一具体问题,设计算法进行解决。3、锻炼实践动手能力,提高解决问题的能力。二、 课程设计1.设计内容一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴.请设计一系统模拟动态地显示出上述过程,要求如下:1) 输出每曲配对情况2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K

5、曲配对跳舞的 情况.至少求出K的两个值.3) 尽量设计出多种算法及程序,可视情况适当加分2、设计思想队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。循环队列是在队列的顺序存储结构中,除了用乙组地址连续的存储单元依次存放从队列头到队列尾的元素外,尚需附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。 循环队列(两个),将男生、女生两组人分别存放,以实现循环配对输出。循环队列的入队,出队,判队满,判队空。 (1) 要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列SqQueue和SqQueue2。 (2) 将男生、女生两组人分别存入

6、这两个队列。以实现他们的循环配对输出,这是循环队列固有的特性。 (3) 利用循环队列的特性,将男女生分别进行入队列和出队列操作,且实现搭配输出。 (4) 循环队列的长度分别设为男女生的个数即可。(5) 在计算机终端输出的结果是:根据要求输出男生女生搭配情况。3、关键算法建立两个链式循环队列来分别存储男生和女生,然后调用入队出队函数实现循环队列的配对输出。为充分利用向量空间,克服上述假上溢现象的方法是将向量空间想象为一个首尾相接的圆环,存储在其中成为循环队列。在循环队列中进行出队、入队操作时,头尾指针仍要加1,朝前移动。只不过当头尾指针指向向量上界时、其加1操作是指向向量的下界。这样就可以通过出

7、队再入队来实现男生女生的循环搭配。课程设计过程中的关键算法如下:1)关键算法之一:初始化队列voidInitQ(LinkQueue&Q)QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode);Q.front=p;Q.rear=p;Q.front-next=NULL;(2)关键算法之二:入队函数voidEnQueue(LinkQueue&Q,intnum)/入队函数QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode);p-num=num;p-next=NULL;Q.rear-next=p;Q.rear=p;(3)关键算法之三:出队函数

8、voidDeQueue(LinkQueue&Q,int&num)/出队函数QueuePtrp,q;if(Q.front=Q.rear)printf(队列为空);p=Q.front-next;num=p-num;Q.front-next=p-next;q=p-next;if(Q.rear=q)Q.rear=Q.front;free(p);(4)关键算法之四:输出第i首曲子时女队的情况voidprintF(LinkQueue&F,inti)/输出第i首曲子时女队的情况QueuePtrp;intn=1;while(nnext;while(F.rear!=p)printf(%d,p-num);p=p-

9、next;printf(%dn,p-num);. .word. .4、测试结果:. .word. .三、实验程序#includetemplate class cirularQueue /定义一个一个循环队列 private: int MaxSize; int front; /头指针 int rear; /尾指针 T *data; public: cirularQueue(int MaxLength) MaxSize=MaxLength; front=rear=0; data=new TMaxLength; cirularQueue() /定义析构函数,使对象在撤销时释放 front=rear=

10、0; delete data; void Initqueue() /队列的申明 for(int i=0;imaxSize-1;i+) push(i);bool IsFull() /判断队列是否已满 if(rear+1)%MaxSize=front) return true; else return false; bool IsEmpty() /判断队列是否为空 if(front=rear) return true; else return false;void push(T info) /入队 if(IsFull() cout错误!队列已满!endl; exit(-1); else datar

11、ear=info; rear=(rear+1)%MaxSize; void Pop(T &info) /出队 if(IsEmpty() cout错误!队列为空!endl; exit(-1); else info=datafront; front=(front+1)%MaxSize; void GetHead(T &info) /取队首元素 if(IsEmpty() cout错误!队列为空!endl; exit (-1); else info=datafront; ;void Initqueue(cirularQueue&,int);void display(int,int);void char

12、ge(int,int);using namespace std;static int songnum=0; /定义歌曲的数量并初始化为0static int m=0,n=0; /男生和女生的人数 int main() /主函数 coutmn; display(m,n); int a=0,b=0; /男生和女生的编号,以判断他们在第几首歌时能在一起跳舞 char quit=y; /判断是否继续输入,如果继续输入,则输入y;否则输入n while(quit!=n) coutab; while(am)|(bn) /如果输入错误 coutab; charge(a,b); coutquit; retur

13、n 0;void Initqueue(cirularQueue &Q,int m) /初始化队列 for(int i=1;i=m;i+) Q.push(i);void display(int m,int n) cirularQueue man(m+1); cirularQueue woman(n+1); Initqueue(man,m); Initqueue(woman,n); coutsongnum; cout每曲的配对情况为:endl; for(int k=1;k=songnum;k+) int x=0,y=0; /男生和女生的编号 man.Pop(x); /男生按顺序出对跳舞 woman

14、.Pop(y); /女生按顺序出对跳舞 cout第k曲:tx号男生y号女生endl; /他们在一起跳舞 man.push(x); /跳完舞后男生再次进入队列等在下一次跳舞 woman.push(y); /跳完舞后男生再次进入队列等在下一次跳舞 void charge(int a,int b) int count=0; /定义舞曲计数以记录他们能在第几曲时在一起跳舞 cirularQueue man1(m+1); cirularQueue woman1(n+1); Initqueue(man1,m); Initqueue(woman1,n); while(count=songnum) int x

15、, y; count+; man1.Pop(x); woman1.Pop(y); man1.push(x); woman1.push(y); if(x=a)&(y=b) cout第count首曲:ta号男生b号女生endl; break; /如果他们在这个舞会上不能在一起跳舞,则输出 if(count=songnum+1) cout他们在这个舞会上不可能在一起跳舞endl; 结 论设计采用的是循环队列的基本操作顺利的解决学生舞曲搭配问题,主要利用用循环队列的环状结构,循环地执行出列入列操作并在出队列时进行配对并输出配对情况,而整个过程不需要不需要移动元素使程序在空间复杂度上降到最小,采用指针的

16、移动大大加快了程序的执行效率。并且对输入进行了改进,以防止用户随意输入时出现的各种意想不到的错误。本次程序设计中所用语言为C+,程序开始定义了类cirular,其中有头指针,尾指针及数据域等。随之定义了析构函数,释放对象,然后进行了队列的基本操作,有队列的申明,判断队空及队满,出队,入队,其核心是display()函数和charge()函数,其中display()用于对各位同学编号和每队的输出情况,charge()用于计算已编号的同学在第几曲中进行配对。循环队列是一种环状的队列并且对头元素指向队尾元素,学生搭配问题是典型的只有采用循环队列才能解决的问题,实验表明该算法的空间复杂度优于其他算法。

17、 致 踉踉跄跄地忙碌近三四天,我的实训报告也终将告一段落。点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方。可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。感谢,衷心的感谢。在实训设计完成之际,衷心感谢我的老师周海岩老师对我的导和教诲。周老师开阔的思维、敏锐的洞察力以及详细的修改意见给我大的启发。金老师不仅专业学识渊博、治学严谨,待人平易近人;同时他对工作的积极热情、对学生认真负责、实事求是的态度,给我留下了深刻的印象,使我受益非浅。唯一的遗憾是

18、我自己不够主动,错过了许多与您交流的机会。在此,我再次向周老师表示衷心的感谢和深深的敬意。 感谢我的母校给我们授课的各位尊敬的老师和计算机系培养我的领导与辅导老师,正是由于他们的以言传身教、解惑,让我学到了专业知识和许多做人的道理。我要特别感谢我的实训老师,与他们在相处的时间里,从他们身上学到了如何求知治学、如何为人处事。我也要感谢我的母校,是她为我提供了良好的学习环境和生活环境,让我的大学生活丰富充实,为我的人生留下了一段难忘的回忆。 感谢在整个实训设计期间和我密切合作的同学,在我弄实训设计过程中,他们热切关心我的设计进度,认真帮忙提出设计的修改意见,为我提供免费的设计数据并帮助我收集查找一

19、些资料。 感谢我的朋友,感谢他们在我失意时给我鼓励,在失落时给我支持,感谢他们和我一路走来,让我在此过程中倍感温暖。 感谢我的家人和亲人,没有他们,就不会有今天的我。他们给予我的关爱、理解和支持是我勇于进取的动力。参 考 文 献 1、 殷人昆编著。数据结构实用教程(C/C+描述)。:清华大学 20072、 钱能编著。C+程序设计教程。:清华大学 19993、 孙巧萍主编。数据结构实训教程。 : 科学 , 20004、 严蔚敏,数据结构题集(C语言版)。:清华大学,2006指导教师评语学号班级选题名称序号评价内容权重(%)得分1考勤记录、学习态度、工作作风与表现。52自学情况:上网检索机时数、文献阅读情况(笔记)。103论文选题是否先进,是否具有前沿性或前瞻性。54成果验收:是否完成设计任务;能否运行、可操作性如何等。205报告的格式规X程度、是否图文并茂、语言规X及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。306文献引用是否合理、充分、真实。57答辩情况: 自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。25合计指导教师(签章):年月日. .word.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服