ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:109.51KB ,
资源ID:7133605      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计 队列问题doc.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计 队列问题doc.docx

1、课程设计 队列问题doc课 程 设 计 报 告题 目: 队列问题 院 系: 计算机科学与应用系 专业年级: 计算机科学与技术 学 号: 学生姓名: 指导老师: 2013年6月29日1、需求分析1.1功能需求链队列基本操作的实现:链队列的初始化,生成一个空链队列;链队列的撤消,即删除队列中的所有结点,仅留下指针结点;链队列的入队操作,即在已知队列的队尾插入一个元素e,即修改队尾指针;链队列的出队操作,即返回队首结点的元素值并删除队首结点;返回元素的第一个值; 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。1.2输入的形式和输入值的范围、 输出的形式程序输入:根据主界面提示,输入所

2、选的操作,并根据提示按“2”键输入元素。若为非法输入,系统会做出提示。程序输出:输入想要操作的选项,便能输出与之对应的结果,接着输入下次操作选项,按“0”退出主页面。1.3设计内容 1.建立一个空链队列;2.插入一个元素;3.删除元素;4.返回元素的第一个值;5.消除队列;1.4运行环境(1)WINDOWS7/XP系统(2)visual C+6.0编译环境2、概要设计2.1该系统的功能简介实现链队列的初始化,生成一个空链队列;链队列的撤消,即删除队列中的所有结点,仅留下指针结点。链队列的入队操作,即在已知队列的队尾插入一个元素e,即修改队尾指针。链队列的出队操作,即返回队首结点的元素值并删除队

3、首结点;设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。2.2 总体程序框图进入程序构建队列插 入 元 素删除元素消除队列退出程序返回元素3、 详细设计3.1 构造空队列Status Initqueue(Linkqueue &Q) Q.front = Q.rear = (Queueptr) malloc (sizeof(Qnode); if(!Q.front) return (OVERFLOW);/存储分配失败 Q.front -next = NULL; return OK;/构造一个空队列3.2 消除队列 Status Destroyqueue(Linkqueue &Q) wh

4、ile(Q.front) Q.rear = Q.front -next; free(Q.front); Q.front = Q.rear; return OK;/销毁队列3.3 插入新元素Status Enqueue(Linkqueue &Q,Qelemtype e)/插入元素e,为Q新的队尾元素 Queueptr p; p = (Queueptr) malloc (sizeof(Qnode); if(!p) return(OVERFLOW); p-data = e; p-next = NULL; Q.rear-next = p; Q.rear = p; return OK;/插入新元素3.4

5、 删除队头元素Status Dequeue(Linkqueue &Q,Qelemtype &e) Queueptr p;/若队列不空,则删除Q的对头元素,用e返回其值,并返回OK/否则返回ERROR if(Q.front = Q.rear) return ERROR; p = Q.front-next; e = p-data; Q.front-next = p-next; if(Q.rear = p) Q.rear = Q.front; free(p); return OK;/删除队头元素3.5返回队头元素Status getfirst(Linkqueue &Q) if(Q.front=Q.r

6、ear) return ERROR; else return Q.front-next-data; /返回队列的第一个元素3.6主函数main() Linkqueue Q; Qelemtype e,n,i; char select; do printf(请输入您的选择:nn); printf(1.构造一个空队列n); printf(2.向队列中插入元素n); printf(3.删除队列中的元素n); printf(4.销毁队列n); printf(5.返回队列的第一个元素n); printf(0.退出程序n); printf(您的选择是:); select = getchar(); switc

7、h(select) case 1: if(Initqueue(Q) printf(构造成功n); else printf(构造失败n); break; case 2: printf(你想插入多少个元素:); scanf(%d,&n); for(i=1;inext = NULL; return OK;/构造一个空队列Status Destroyqueue(Linkqueue &Q) while(Q.front) Q.rear = Q.front -next; free(Q.front); Q.front = Q.rear; return OK;/销毁队列Status Enqueue(Linkqu

8、eue &Q,Qelemtype e) Queueptr p; p = (Queueptr) malloc (sizeof(Qnode); if(!p) return(OVERFLOW); p-data = e; p-next = NULL; Q.rear-next = p; Q.rear = p; return OK;/插入新元素Status Dequeue(Linkqueue &Q,Qelemtype &e) Queueptr p; if(Q.front = Q.rear) return ERROR; p = Q.front-next; e = p-data; Q.front-next =

9、 p-next; if(Q.rear = p) Q.rear = Q.front; free(p); return OK;/删除队头元素 Status getfirst(Linkqueue &Q) if(Q.front=Q.rear) return ERROR; else return Q.front-next-data; /返回队列的第一个元素#include stdio.hmain() Linkqueue Q; Qelemtype e,n,i; char select; do printf(请输入您的选择:nn); printf(1.构造一个空队列n); printf(2.向队列中插入元素

10、n); printf(3.删除队列中的元素n); printf(4.销毁队列n); printf(5.返回队列的第一个元素n); printf(0.退出程序n); printf(您的选择是:); select = getchar(); switch(select) case 1: if(Initqueue(Q) printf(构造成功n); else printf(构造失败n); break; case 2: printf(你想插入多少个元素:); scanf(%d,&n); for(i=1;i=n;i+) scanf(%d,&e); if(Enqueue(Q,e) != OK) return

11、 ERROR; break; case 3: if(Dequeue(Q,e) printf(你删除的对头元素是: %dn,e); else printf(删除失败n); break; case 4: if(Destroyqueue(Q) printf(销毁队列成功n); else printf(销毁失败n); break; case5: int a; printf(队列的第一个元素是:n); a=getfirst(Q); printf(%d,a); break; default: printf(您的输入不服规范,请重新输入!); getchar(); printf(nn); while(sel

12、ect!=0);参考文献1赵国玲. C语言与数据结构M. 北京:电子工业出版社,2严蔚敏,吴伟民. 数据结构(C语言版)M. 北京:清华大学出版社,3 严蔚敏.数据结构 C语言M.北京: 清华大学出版社,4 谭浩强. C程序设计指导M.北京:清华大学出版社,5 潘新民, 王燕芳. 微型计算机控制技术M, 第2版. 北京: 电子工业出版社致谢 在此谨对那些无私帮助我的同学以及无私教育我的辛勤的老师及学院领导表示感谢,谢谢你们的帮助。每一个语句、每一个算法,都来自于你们的无私帮助及辛勤教诲。 数据结构课程设计评分标准课程名称:数据结构课程设计 指导教师:傅尔胜 姓名赵永峰性别男学号12100623

13、7班级1210062程序运行情况(占总成绩20%) 能正确运行(20分) 基本能正确运行(15分)能运行但结果不完善(10分) 程序功能的完善程度(占总成绩10%) 完善(10分) 基本完善(8分) 不完善(5分)程序结构的合理性(占总成绩10%) 合理(10分) 基本合理(8分)不太合理(5分) 对问题的答辩情况(占总成绩40%) 概念正确有创新(40分) 能正确回答所有问题(35分)基本能正确回答(30分) 部分问题回答概念不清晰(20分) 学生的工作态度与独立工作能力(占总成绩10%) 工作态度认真能独立完成任务(10分) 工作态度认真但独立性较差(8分)工作态度基本认真但缺乏独立性(5分) 设计报告的规范性(占总成绩10%)符合规范(10分) 基本符合规范(8分)规范性较差(5分) 成绩等级得分优秀:90分100分; 良好:80分89分; 中等:7079分; 及格:6069分; 不及格0分59分。指导教师评语:成绩: 指导教师签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1