北邮数据结构实验一约瑟夫问题实验报告(递归做法).docVIP

  • 26
  • 0
  • 约3.66千字
  • 约 6页
  • 2015-09-01 发布于安徽
  • 举报

北邮数据结构实验一约瑟夫问题实验报告(递归做法).doc

数据结构实验报告 实验名称: 实验一——线性表 学生姓名: 班 级: 班内序号: 学 号: 日 期: 1.实验要求 (1) 实验目的 通过选择下面四个题目之一进行实现,掌握如下内容: 熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法 学习指针、模板类、异常处理的使用 掌握线性表的操作的实现方法 学习使用线性表解决实际问题的能力 (2) 实验内容 利用循环链表实现约瑟夫问题的求解。 约瑟夫问题如下:已知n个人(n=1)围坐一圆桌周围,从序号为的人开始报数,顺时针数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规则重复下去,直到所有人全部出列。 2.2 关键算法分析 1.关键算法 约瑟夫问题的实质就是在含n个元素的循环链表中依次删除第m个元素,返回链表中最后一个元素值。即用含那n个元素的数组初始化循环链表,从第一个元素开始查找第m-1个元素,删除第m个元素,然后从第m+1个元素开始继续查找第m-1个元素,删除第m个元素,循环此过程直到链表中只剩下最后一个元素。 关键算法伪代码如下: [1] 让用户输入要删第几个元素和总人数n,并给含n个元素的数组赋值; [2] 用含n个元素的数组初始化循环链表(头插法); [3] 调用单循环表类的删除函数,实参为数组和尾指针的下一结点(即第一个元素); [3.1] 定义新结点p,用以存储要删除的结

文档评论(0)

1亿VIP精品文档

相关文档