下载此文档

用顺序表解决约瑟夫环问题.doc


文档分类:通信/电子 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
计算机科学与工程学院《算法与数据结构》试验报告[一]专业班级试验地点学生学号指导教师学生姓名试验时间试验项目算法与数据结构试验类别基础性()设计性()综合性(√)其它()试验目的及要求掌握用VC++上机调试线性表的基本方法;(2)掌握顺序表的存储结构以及基本运算的实现。成绩评定表类别评分标准分值得分合计上机表现积极出勤、遵守纪律主动完成设计任务30分程序与报告程序代码规范、功能正确报告详实完整、体现收获70分备注:评阅教师:日期:年月日试验内容一、实验目的和要求1、实验目的:(1)掌握用VC++上机调试线性表的基本方法;(2)掌握顺序表的存储结构以及基本运算的实现。2、实验内容约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,报到m时停止并且报m的人出列,再从他的下一个人开始重新从1报数,报到m时停止并且报m的人出列。如此下去,直到所有人全部出列为止。要求设计一个程序模拟此过程,对任意给定的m和n,求出出列编号序列。 3、实验要求:用顺序表实现。设计分析根据实验要求,采用顺序表来完成本次实验。实验中采用一维数组屁【】,先将n个人的编号存入到p[0]p[n-1]。从编号为1的人(下标t=0)开始循环报数,数到m的人(下标t=(t+m-1)%i)p[t],输出并将其从数组中删除(即将后面的元素前移一个位置),每次报数的起始位置就是上次报数的出列位置。反复执行直到出列n个人为止。源程序代码#include<>#include<>#include<>#defineMaxSize100typedefstructList{ intdata[MaxSize]; intlength;}*Sqlist;voidInitList(Sqlist&L){ L=(Sqlist)malloc(sizeof(Sqlist)); L->length=0;}voidCreateList(Sqlist&L){ intn;printf("您想输入的人数为:"); scanf("%d",&n); printf("最初的顺序表为:\n"); for(inti=0;i<n;i++) { L->data[i]=i+1; printf("%d",L->data[i]); L->length=n; } printf("\n");}voidjosephus(Sqlist&L,intm){ inti,j,t; t=0;printf("最后的顺序表为:"); f

用顺序表解决约瑟夫环问题 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小243 KB
  • 时间2019-01-23