安徽农业大学经济技术学院。
题目:约瑟夫生者死者游戏
专业:12级计算机科学与技术。
班级: 一班。
学号: 12838015
姓名: 方耀东。
指导老师: 马竹娟
二○一三年十二月。
目录。一:内容与要求2
二:概要设计2
三:程序执行流程图3
四:详细**结构4
五:运行结果图6
六:设计过程主要问题8
七:心得体会8
八:源程序完整**8
一:内容与要求。
约瑟人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海夫游戏的大意是:每30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入还中,其余人才能幸免遇难。无奈,大家只得同意这种办法,并议定30个中,然后再从他的下一个人数起,数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。
问哪些位置是将被扔下大海的位置。
二:概要设计。
利用链表循环来解决。首先,就必须先定义一个链表,按照所需要的长度进行定义,然后令其为指针指向头指针,即完人员编号,先用一个指针循环查找,找到第一个需要删除的人,标记为1,先输出节点数,再进行删除。依次循环查找,直到被删除的节点数量为总人数的一半的时候则结束。
成了一个循环链表的创建。接下来先打印链表输出。其次,就是算法实现,需要利用指针来进行,数据域标记。
三:程序执行流程图。
四:详细**结构。
1)创建含有n个结点的单循环链表。
2)生者与死者的选择选择(p指向q的下一个结点,初始i位置为1)。
3)输出所有生者的位置。
1.建立单循环链表。
linklist initring(int n,linklist r)
listnode *p, *q;
int i;
r=q=(listnode *)malloc(sizeof(listnode));
for(i=1;i p=(listnode *)malloc(sizeof(listnode));
q->data=i;
q->next=p;q=p;
p->data=n;
p->next=r;
r=p;return r;
2.生者与死者选择。
linklist deletedeath(int n,int k,linklist r)
int i,j;
listnode *p,*q;
p=r;printf("抛下大海的编号如下:");
for(i=1;i<=n/2;i++)
printf("");
r=p;return r;
3.输出所有生者。
void outring(int n,linklist r)
int i;
listnode *p;
p=r;printf("幸存者的编号如下:");
for(i=1;i<=(n+1)/2;i++,p=p->next)
printf("");
五: 运行结果图如下。
1. 输出船上的总人数。
2. 输出后出现的界面。
六:设计过程主要问题。
在设计过程中,开始需要掌握是就是思想,主要就是链表的创建跟删除,在设计过程中,我不知道如何去循环查找,以及如何循环输出,因此刚刚开始无从下手。之后我就开始查找资料,网上参考别人的算法实现,在去咨询同学跟老师,最主要是这个程序不是很难,只要思想掌握好,了解指针链表的创建删除就可以编写。因此在掌握好循环算法之后就可以完成编写。
七:心得体会。
经过本次的实训,使我得到了不少的收获。使我的动手能力有了一定的提升,并且学会了如何真正去设计一个简单的程序,在实训之前,我对程序整体的结构基本上没什么底子,自己从来没完整的编写过一个程序,而这次无疑对我来说我一个最好的练习。虽然每次去询问都是很简单的问题,很遭反感,但是每次我都有收获。
本次实训的主要运用就是链表,从而也加强了我对链表这反面的了解,最主要的收获就是对程序整体的结构以及其构造,对我今后的学习有很大的帮助,今后我会多编写程序来提高自己的综合水平。
八:源程序完整**:
#include<>
#include<>
typedef struct node
p->data=n;
p->next=r;
r=p;return r;
linklist deletedeath(int n,int k,linklist r)
int i,j;
listnode *p,*q;
p=r;printf("抛下大海的编号如下:");
for(i=1;i<=n/2;i++)
printf("");
r=p;return r;
void outring(int n,linklist r)
int i;
listnode *p;
p=r;printf("幸存者的编号如下:");
for(i=1;i<=(n+1)/2;i++,p=p->next)
printf("");
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...