《数据结构与算法设计》
实验报告
——实验一
学院:自动化学院
班级:06111001
学号:1120101525
姓名:王冬
一、 实验目的
1、熟悉VC环境,学习使用C语言利用链表的存储结构解决实际的问题。
2、在编程、上机调试的过程中,加深对线性链表这种数据结构的
基本概念理解。
3、锻炼较强的思维和动手能力和更加了解编程思想和编程技
巧。
二、实验内容
1、 采用单向环表实现约瑟夫环。
请按以下要求编程实现:
① 从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的结点编号依次为1,2,……,m。
② 从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。
例如,m=10,s=3,n=4。则输出序列为:6,10,4,9,5,2,1,3,8,7。
…… …… 余下全文
数学与计算机学院约瑟夫环问题实验报告
年级 10级学号 2010434062 姓名 成绩
专业电气信息(计算机类)实验地点主楼402 指导教师史青宣
实验项目 约瑟夫环问题 实验日期2011年12月26日
一、实验目的
本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
二、实验问题描述
设编号为1,2,···,n的n个人围坐一圈,约定编号为k(1≤k≤n)的人从1开始报数,数到m的那个人出列,他的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。
…… …… 余下全文
《数据结构》
课程设计报告
20##年12月18日
目 录
1 课程设计的目的………………………………………………………………2
2 需求分析………………………………………………………………………2
3 课程设计报告内容……………………………………………………………3
1、概要设计……………………………………………………………………3
2、详细设计……………………………………………………………………3
3、调试分析……………………………………………………………………x
4、用户手册……………………………………………………………………x
5、测试结果……………………………………………………………………6
6、程序清单……………………………………………………………………7
4 小结 …………………………………………………………………………10
1、 课程设计的目的
(1) 熟练使用C++编写程序,解决实际问题;
…… …… 余下全文
问题描述:
编号为1到n的n个人围成一圈,每人带一个密码c,以m为报数上限。然后从第一个人开始顺时针自1开始报数,报到m的人出列,将其密码作为新的m值,从他的下一个人开始,同样顺时针自1开始报数,依次循环下去,直到所有的人都出列!要求得到依次出列的那些人的编号序列!
基本要求:
用C代码实现此活动,要求使用一定的算法进行操作,并最终通过程序运算出最后的结果!
(包括程序的模块结构,数据结构,输入/输出设计,符号名说明等)
基本思想:
利用不带头结点单向循环链表模拟该活动,在实现了一切动作之后,运用一定的算法得到最终的结果。
程序的模块结构:
定义了相关的结构体之后,主要有以下几大模块:
1. 建立由头指针指示的有n个结点的不带头结点的单向循环链表crt_CLinkList(H,n);
…… …… 余下全文
实验1约瑟夫环问题
1. 需求分析
(1) 输入的形式和输入值的范围:
每一次输入的值为两个正整数,中间用逗号隔开。
若分别设为n,m,则输入格式为:“n,m”。
不对非法输入做处理,即假设输入都是合法的。
(2) 输出的形式:
输出格式1:在字符界面上输出这n个数的输出序列
输出格式2:将这n个数的输出序列写入到文件中
(3) 程序所能达到的功能:
对于输入的约瑟夫环长度n和间隔m,输出约瑟夫环的出列顺序。
(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
正确:
输入:10,3
输出:3 6 9 2 7 1 8 5 10 4
…… …… 余下全文
20##级数据结构实验报告
实验名称: 实验线性表实现约瑟夫问题求解
学生姓名:
班 级:
班内序号: 07
学 号:
日 期: 20xx年10月31日
1.实验要求
【实验目的】
1. 熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法;
2. 学习指针、模板类、异常处理的使用;
3. 掌握线性表的操作实现方法;
4. 培养使用线性表解决实际问题的能力。
【实验内容】
利用循环链表实现约瑟夫问题的求解。
约瑟夫问题如下:已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列。他的下一个人又从1开始报数,数到m的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。
2.程序分析
2.1 存储结构
存储结构:循环链表
2.2 关键算法分析
【设计思想】
首先,设计实现约瑟夫环问题的存储结构。由于约瑟夫环本身具有循环性质,考虑采用循环链表,为了统一对表中任意节点的操作,循环链表不带头结点。循环链表的结点定义为如下结构类型:
…… …… 余下全文