数据结构课程设计

发布 2022-10-01 21:41:28 阅读 1120

安徽农业大学经济技术学院。

题目:约瑟夫生者死者游戏

专业: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 初始化时每个方格都是关闭的,一个...