《数据结构与算法设计》
实验报告
——实验一
学院:自动化学院
班级: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。
三、程序设计
1、概要设计
为了解决约瑟夫环的问题,我们可以建立单向环表来存储每个人的信息(该人的编号以及其下一个人的编号),及结点,人后通过查找每个结点,完成相应的操作来解决约瑟夫问题。
(1) 抽象数据类型定义
ADT Joh{
数据对象:D=
数据关系:R1=
基本操作:
…… …… 余下全文