数据结构课程设计:约瑟夫生者死者游戏(c++实现、单循环链表、输出死者姓名和编号、附可执行源代码)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

1.1设计内容:

        有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难;无奈,大家只得同意这种办法,并议定N个人围成一圈,由第一个人开始,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人开始,数到第9人,再把他投入大海中,如此循环地进行,直到剩下N/2个乘客为止。问哪些乘客是将被投入大海的?输出这些乘客的姓名和位置。

        设计要求:

        掌握单循环链表结构下的基本操作实现算法;能够运用单循环链表的结构特点实现本游戏规则。

        重点难点:

        【本课程设计重点】单循环链表的结构特点和存储。

        【本课程设计难点】单循环链表的建立和表中结点的删除。

1.2 概要设计

A.游戏目录模块:展示一个菜单页面供使用者选择进行约瑟夫游戏或是退出游戏。

B.初始化单循环链表:创建一个单循环链表以供存储乘客信息。

C.输入初始人数模块:用户输入所有乘客数量。

D.上船(录入乘客信息)模块:用户将所有乘客信息输入,并存储在数组中,以供单循环链表使用。

E.进行约瑟夫游戏(输出跳船者信息)模块:依照约瑟夫游戏规则进行筛选,选出需要跳船的乘客。

F.输出剩余人数模块:将最后船上剩余的乘客数量输出。

计难点】单循环链表的建立和表中结点的删除。

1.3 详细设计和编码<

约瑟夫死亡游戏(循环单链表 这里写自定义目录标题约瑟夫死亡游戏(循环单链表)新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 约瑟夫死亡游戏(循环单链表) 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markd 阅读详情

相关推荐

约瑟夫环问题 (c / c++

约瑟夫环问题是一道经典的数据结构的题目,问题描述为:编号为1,2,......,n的n个人按顺时针方向围坐在一张圆桌周围,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报到m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列,如此下去,直至圆桌周围的人全部出列为止。

Renie的专栏 6623

數據結構课程設計——生死者遊戲源代碼(可以運行)

题目描述 有n个旅客一条船,因为严重超载加上高浪危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海,其余人才能幸免遇难.无奈,家只得意这种办法,并议定n个人围坐一圈,从1,2,3…到n进行编号。由第一个人数起,依次报数,数到第m人,将它扔进海中,然后再从他的下一个人数起,数到第m人,再将他扔进海,如此循环进行,直到剩下一半人为止,问哪几个人是将被扔进海的人。 主要是解决了当m=1的时候程序出错的bug

约瑟夫生者死者游戏:有N个旅客一条船,因为严重超载加上高浪危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难;无奈,家只得意这种办法,并议定N个人围成一圈,由

有N个旅客一条船,因为严重超载加上高浪危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难;无奈,家只得意这种办法,并议定N个人围成一圈,由第一个人开始,依次报数,数到第9人,便把他投入海中,然后再从他的下一个人开始,数到第9人,再把他投入海中,如此循环地进行,直到剩下N/2个乘客为止。问哪些乘客是将被投入海的?输出这些乘客姓名位置。掌握单循环链表结构下的基本操作实现算法能够运用单循环链表的结构特点实现游戏规则数据结构单循环链表

蓝多多的小仓库 1689

约瑟夫生死游戏 c语言

30个人坐一条船,严重超载,船上必须剩15人才能保证安全,将30个人围成一圈,每数第9个就跳下去,问都哪个位置的人跳下去了??

【码图】数据结构作业1——约瑟夫生死游戏

于是N个人围成一圈(从1,2,3...N分别编号)。由编号为1的人开始,依次报数,数到第M人,便把他投入海中,用循环链表实现:N个乘客一艘船,因为严重超载加上高浪危险万分,因此船长告诉乘客,只有将部分乘客投入海中,其余人才能幸免于难。然后再从他的下一个人数起,数到第M人,再将他扔到海中,如此循环地进行,直到剩下K个乘客为止。按顺序依次输出被扔下海的乘客编号。函数参数为乘客人数N、间隔人数M剩余乘客人数K,1<=N<=1000,1<=M<=500000,0<=K<N。

Hsianus的博客 562

约瑟夫死者游戏-C语言实现-双向循环链表

双向循环链表实现约瑟夫死者游戏

m0_62341336的博客 2887

C/C++数据结构课程设计安排

数据结构课程设计安排课程设计学时:32学时课程设计目的:综合应用数据结构课程中所学的数据结构:线性表、栈、队列、数组、广义表、树、二叉树、图、查找表中的一种或多种数据结构完成一个较问题的求解(其实这里的问题也并不太,所用的数据结构可能是其中的多个,也可能是其中的一个两个)。从而培养学生综合应用基本数据结构分析、解决实际问题的能力,并进一步加深对所学知识的理解掌握。课程设计要求:1、课程设计以组为单位开展,每组2~4名学,自由组合,确定组长一名。

程序设计 5678

约瑟夫josephus问题C++

约瑟夫josephus问题C++ 一、实验内容: 一群小孩围成一圈,假定一个任意数m,从第k个小孩起,顺时针方向数,每数到第k个小孩时,该小孩便离开,圈子不断缩小。最后剩下的一个小孩便是胜利者。josephus问题是,胜利者究竟是第几个小孩? 二、思路与步骤 ,首先这个问题是要将参加游戏的小孩围成一个圆圈,我们选用链表来存储这个圆圈, ...

two_orion的博客 3809

c++循环链表约瑟夫问题

/ 指向下一个节点的指针// 编号、性别、年龄// 姓名(最20字符)2、宏定义define man 1 // 男性标识define woman 0 // 女性标识define maxnamelength 20 // 姓名长度3、函数功能说明3.1- 功能:初始化带头节点的循环链表- 参数:链表头指针的引用- 实现:分配头节点内存,设置next指向自身,标志空表- 功能:销毁整个链表,释放内存- 参数:链表头指针的引用。

2403_87496454的博客 769

数据结构课程设计约瑟夫生死游戏

数据结构课程设计约瑟夫生死游戏,C语言编写

约瑟夫生者死者游戏(vc实现、c编写)

问题描述:约瑟夫生者死者游戏:30个旅客一条船,因为严重超载,非常危险家一致意将一半的旅客投入海中。30个旅客围成一圈,由第一个人开始,依次报数,数到第9人,便把他投入海中,然后从他的下一个人数起,数到第9人,再将他投入海,如此循环,直到剩下15个乘客为止。问哪些位置是将被扔下海的位置。试用数组单循环链表来解决本问题。

链队列约瑟夫c++代码_约瑟夫环代码C++

实习报告题目:约瑟夫环班级:031014姓名:刘嵩学号:03101409完成日期:2011.11.16一、需求分析1.本演示程序中,要求用户输入人数n初始报数上限的值m。并依次输入n个人的密码(password)。程序输出n个人的出列顺序。2.演示程序以用户计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据越算结果显示在其后...

weixin_39766014的博客 479

约瑟夫

<br />标题:<br />约瑟夫环<br />时 限:<br />500 ms<br />内存限制:<br />2000 K<br />总时限:<br />1000 ms<br />描述:<br />约瑟夫环<br />编号为1,2,3,……,n的n个人按顺时针方向围坐一圈。任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。设计程序输出出列顺序。<br />输入:<br

Andrew Shaw|失的猛 1104

C++约瑟夫环改良版

约瑟夫环的基础上进行改良,利用建立的随机性,来随机删除人 利用尾插法来建立单链表

@Go Nowhere Fast 323

c语言课程设计初学者教程,c语言课程设计教程.doc

学号《》课程设计报告Josephus环专业:数字媒体技术班级:数字媒体二班姓名:指导教师:成绩:计算机与信息工程系2014年 6月 20日目录1设计内容及要求11.1设计内容11.2设计任务及具体要求12 概要设计12.1介该系统的功能简13 程序代码74程序调试85小结101设计内容及要求1.1设计内容持有一个密码(正整数)。一 开 始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向...

weixin_42347048的博客 183

数据结构线性表实验

n的n个人按顺时针方向围坐一圈,每人持有一个密码〈正整数〉,一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。解决策略:本问题主要涉及输入值:上限m,人数n,每个人相应的密码,由于这个过程会不断循环,因此需要构造一个循环单链表,每此循环计数至m次,记下停止报数位置的元素值作为新的上限,并删除它。第三步、录入节点信息;第四步、查找,输出

qq_52743307的博客 1497

循环链表的应用_约瑟夫

标题: 约瑟夫环 时 限: 500 ms 内存限制: 2000 K 总时限: 3000 ms 描述: 约瑟夫编号为1,2,3,……,n的n个人按顺时针方向围坐一圈。任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部

孟凡驰的博客 1778

循环链表约瑟夫环问题

循环链表 一。链表的建立 链表的尾结点指针域是NULL.而循环链表的建立,尾结点指向头结点 void CreatByRear(LinkList head) { Node*r,*s; char name[20]; int number; r=head; printf("请输入学生的姓名学号:\n"); while(1) { scanf("%s",name); scanf("%d",&number); if(number==0)

qq_61769596的博客 325

数据结构实验——约瑟夫环问题

从键盘输入人数N(N

qint__的博客 1462
下一篇: 入门C++————1.c++基础知识
NH木木木
博客等级 码龄5年 31粉丝 2原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值