- 0
- 0
- 约5.73千字
- 约 15页
- 2024-01-24 发布于江苏
- 举报
PAGE14
实用文档
目录
TOC\o1-3\h\z\u一、需求分析 2
1、问题描述: 2
2、基本要求: 2
3、需求分析: 2
二、概要设计 3
三、详细设计 4
1、循环队列 4
2、循环链表 5
3、伪代码 6
4、具体函数分析及变量分析 7
四、调试分析和测试结果 7
五、总结 10
六、参考文献 11
七、附录 12
一、需求分析
1、问题描述:
一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
2、基本要求:
输入数据:输入m,n。m,n为整数,nm。
输出形式:中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。
3、需求分析:
①输入数据m,n
②计算出最终猴子大王的序号。
③模拟出整个过程。
④找到合适的数据结构处理这个问题。
⑤找到正确的方法解决这个问题。
二、概要设计
对题意进行分析后,可以画出整个过程的流程图。
具体流程图:
这个问题属于约瑟夫环问题,我们对这个题目进行具体分析:
假如现在m=5,n=2,即有5只猴子,按照循环数2的方法,我们演变这个过程:
第一次:12345
×2号出局
第二次:12345
××4号出局
第三次:12345
×××1号出局
第四次:12345
××××5号出局
最后得到猴子大王的序号是3号。
那么一般化,对于m猴子,n只猴子我们该怎么做?
三、详细设计
1、循环队列
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
仔细分析整个过程,我发现这个过程和学过的循环队列特别像,在学习循环队列的时候,如果采取数组来存储队列,那么在front端弹出元素就执行front=(front+1)%MAX,在rear端进入队列的时候就执行rear=(rear+1)%MAX,以实现绕圈的操作。
回顾一下循环队列的具体的入队算法:
1、tail=tail+1;
2、若tail=n+1,则tail=1;
3、若head=tail尾指针与头指针重合了,表示元素已装满队列,则作上溢出错处理;
4、否则,Q(tail)=X,结束(X为新入出元素)。
队列空的条件:front==rear
队列满的条件:(rear+1)%=MAXSIZE==front
那么在这个问题中能不能学习这个技巧?仔细想想,我认为答案是可以的。
在问题中还牵涉到一个淘汰的过程,对于这个问题,我们该怎么处理?其实这个问题比较好处理,如果我们采取的是链表那么直接删除掉就可以了,如果是数组,我们只要把删除的做个标记,下次碰到已经删除的直接跳过这个元素就可以了。
2、循环链表
在这个问题上也可以用链表。
链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表:顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。在计算机科学中,链表作为一种基础的数据结构可以用来生成其它类型的数据结构。链表通常由一连串节点组成,每个节点包含任意的实例数据和一或两个用来指向明上一个/或下一个节点的位置的地址。链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。而链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。链表有很多种不同的类型:单向链表,双向链表以及循环链表。
显然这个问题可以用循环链表处理。
循环链表是与单链表一样,是一种链式的存储结构,所不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个
您可能关注的文档
- 王者荣耀争霸赛活动方案.pptx
- 环境保护The--environmental--protection英语演讲PPT.ppt (1).pptx
- 王安石.PPT可编辑.pptx
- 独立又互斥的事件例子.docx
- 特种设备安全管理培训ppt课件.pptx
- 环境心理学 9.城市外部公共空间活动研究.pptx
- 王者荣耀教学篇-ppt课件.pptx
- 王实甫的《西厢记》.pptx
- 现代政府理论的四维分析框架说课材料.pptx
- 物联网温室大棚监测系统需求分析报告.docx
- 2026年预防为主,生命至上安全培训课件.pptx
- 2026年三级安全教育.pptx
- 2026年检测业务安全培训.pptx
- 2026年消防动火培训.pptx
- 2026年重大事故隐患专项排查整治行动清单.pdf
- 2026年健康义普急救.pptx
- 2025—2026学年度四川省广元市苍溪县九年级上学期期末考试历史试题(含答案).docx
- 2025—2026学年度四川省泸州市合江县马街中学校九年级上学期期末历史试题(含答案)(九上_九下第二单元).docx
- 2025—2026学年度云南省曲靖市宣威市民族中学等校联考九年级上学期期末模拟历史试题(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
最近下载
- 银行客户经理财富管理业务操作手册.docx VIP
- 广美附中2024年数学试卷.pdf
- 非处方药目录(全集).doc
- 注册会计师-税法-基础练习题-第六章城市维护建设税法和烟叶税法-第三节教育费附加和地方教育附加.docx VIP
- 俄语视听说基础教程3全套课件.pptx
- 2025年《可爱的中国》新疆地方教材(小学版)教案范文.docx VIP
- 常州大学《数据结构与算法分析》2022-2023学年期末试卷.doc VIP
- 常州大学《数据结构》2021-2022学年期末试卷.doc VIP
- 常州大学《数据结构与算法分析》2021-2022学年期末试卷.doc VIP
- 注册会计师-税法-基础练习题-第六章城市维护建设税法和烟叶税法-第二节烟叶税法.pdf VIP
原创力文档

文档评论(0)