数据结构实验报告ﻬ题目:约瑟夫环问题一.设计内容[问题描述] 约瑟夫环问题得一种描述就是:编号为 1,2,3,…,n 得 n 个人按顺时针方向围坐一圈,每人手持一个密码(正整数)。一开始任选一个整数作为报数上限值,从第一人开始顺时针自 1 开始顺序报数,报到 m 时停止报数。报 m 得人出列,将它得密码作为新得 m 值,从她在顺时针方向上得下一个人开始重新从 1 报数,如此下去直到所有人全部出列为止.试设计程序实现之。[基本要求] 利用循环链表存储结构模拟此过程,根据出列得顺序打印各人得编号。[实验提示]程序运行后首先要求用户指定初始报数上限值。然后读取各人得密码。设n<=3 0.程序执行后,要求用户在计算机终端上显示“提示信息"后,用键盘输入“提示信息"中规定得命令,以“回车符"为结束标志。相应得输入数据与运算结果显示在其后。二、设计目得1、 达到熟练掌握 C++语言得基本知识与技能;2、 能够利用所学得基本知识与技能,解决简单得面对对象程序设计问题。3、把课本上得知识应用到实际生活中,达到学以致用得目得.三、系统分析与设计(确定程序功能模块)1、为实现上述程序得功能,应以有序链表表示集合.基本操作:I ni t L i s t(&L) 操作结果:构造一个空得有序表 L。DestroyList(&L) 初始条件:有序表L已存在。 操作结果:销毁有序表 L.Lis t E mp t y(L)初始条件:有序表 L 已存在。操作结果:若 L 为空表,则返回 TRUE,否则返回 FA LSE。Lis t L en gth(L)初始条件:有序表L已存在。操作结果:返回 L 中数据元素个数。GetE l e m(L,i)初始条件:有序表 L 已存在,并且 1≤i≤L i s t L e ngt h(L)。操作结果:返回 L 中第 i 个数据元素.L ocatePo s(L,e)初始条件:有序表L已存在,e 与有序表中元素同类型得值。操作结果:若 L 中存在与e相同得元素,则返回位置;否则返回 0。In s ertEle m(&L,e)初始条件:有序表 L 已存在操作结果:在 L 中,按有序关系插入值与 e 相同得数据元素。Delet e Elem(&L,i)初始条件:有序表L已存在。操作结果:删除 L 中第i个数据元素。L istTraver s e(L,vi sit())初始条件:有序表L已存在。操作结果:依次对 L 得每个数据元素调用函数vi sit()。一旦 vis it()失败,则操作失败。} ADT Orde re dLi st2、本程序包含两个模块...