敢死队问题说明书.doc

敢死队问题说明书.doc

ID:50894318

大小:133.50 KB

页数:33页

时间:2020-03-15

敢死队问题说明书.doc_第1页
敢死队问题说明书.doc_第2页
敢死队问题说明书.doc_第3页
敢死队问题说明书.doc_第4页
敢死队问题说明书.doc_第5页
资源描述:

《敢死队问题说明书.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、目录摘要1前言2正文31.采用类c语言定义相关的数据类型32.各模块的伪码算法43.函数的关系调用图84.调试分析135.测试结果146.源代码(带注释)16总结23参考文献24致谢25附件I部分源代码:26摘要敢死队问题是二战时期攻城方为了突破桥对面敌人的碉堡而产生的一类问题,它和我们所说的约瑟夫换问题有一定的联系,或者应该说是有点儿类似,从根本上讲就是从围成一圈的人(数字),按照一定的规则由某一个数开始,以一定的基数为一个密码,顺序性的取出密码的终结者,而后以终结者以后的第一人(数字)并且以当前刚刚跳出的终结者所给与的密码为基数,再一次开始顺序性取出。。。。。关键字:单循环链表,循环队列,

2、线性表,C语言。前言数据结构是研究数据元素之间的逻辑关系的一门课程,以及数据元素及其关系在计算机中的存储表示和对这些数据所施加的运算。该课程设计的目的是通过课程设计的综合训练,培养分析和编程等实际动手能力,系统掌握数据结构这门课程的主要内容。本次课程设计的内容是敢死队问题,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活。队列是另一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。而敢死队问题就是对子类问题的先进性的应用,通过这个设计事例,我们有理由相信至此以后,我们对循环链表和循环队列的理解将会是更上

3、一层楼。通过该课程设计,能运用所学知识,能上机解决一些实际问题,了解并初步掌握设计、实现较大程序的完整过程,包括系统分析、编码设计、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。正文1.采用类c语言定义相关的数据类型a.循环单链表存储结构typedefstructnode{intdata;structnode*next;}LNode;/*定义结点类型*/b.线性表存储结构#defineLIST_INIT_SIZE100#defineLISTINCCREMENT10#defineOK1#defineERROR0typedefintElemType;ty

4、pedefstructKList/*定义数据结构体类型*/{ElemType*elem;/*存储空间基址*/intlength;/*当前长度*/intlistsize;/*当前分配的存储容量(以sizeof(ElemType)为单位)*/}SqList;c.循环队列存储结构#defineQueueSize1000//假定预分配的队列空间最多为1000个元素typedefstruct{intdata[QueueSize];intfront;intrear;intcount;//计数器,记录队中元素总数}CirQueue;2.各模块的伪码算法创建循环链表:LNode*CREAT(intn)/*创建

5、循环链表*/{LNode*s,*q,*T;inti;if(n!=0){T=q=(LNode*)malloc(sizeof(LNode));q->data=1;/*生成第一个结点并使其data值为1*/for(i=2;i<=n;i++){s=(LNode*)malloc(sizeof(LNode));q->next=s;q->next->data=i;/*赋值*/q=q->next;}q->next=T;}returnT;}链表的删除:DELETE(LNode*T,intm)/*链表的删除*/{LNode*a;inti;while(T->next!=T){for(i=1;i

6、查找要删除结点的前一结点*/T=T->next;a=T->next;T->next=a->next;free(a);T=T->next;}printf("");return(T->data);}创建线性表:intInitList_Sq(SqList&L)/*创建线性表函数*/{L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem){printf("存储分配失败");returnERROR;}else{L.length=0;/*空表长度为0*/L.listsize=LIST_INIT_SIZE;returnO

7、K;/*初始存储容量*/}}线性表再分配:intListInsert_Sq(SqList&L)/*线性表再分配函数*/{/*SqListL;*/int*newbase;newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCCREMENT)*sizeof(ElemType));/*为顺序表增加一个大小为存储LISTINCCREMENT个数据元素的空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。