2023年数据结构约瑟夫环实验报告.docx
《2023年数据结构约瑟夫环实验报告.docx》由会员分享,可在线阅读,更多相关《2023年数据结构约瑟夫环实验报告.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Bjina Uvwwiify of on4 UIcnnxxxoH0m处友年便大学世化。茂CEury C-Bco数据结构与算法设计约瑟夫环实验报告实验一专业:物联网工程 班级:物联网1班 学号:15 18 0 118姓名:刘沛航#include引用函数库struct LN ode |i nt num:st r uc t LNo d e * n ext;:定义链表t yp e def s tr u ct LNo d e NODE;NODE *c r eate 1 inkl i st( i n t n) (。/初始化循环链表,并返回I头指针NODE *h e a di n t i= 1 ;hcad=
2、p= (st r uct LNo d e*)mal 1 oc(si z co f (struct LNode);p n um= i ;for(i=2; i n ex t =q;p=q: p-n u m= i ;P next=head;使链表尾指向链表头,形成循环链表rct u rn head;v oid josep h (NO D E *p,in t n,int m)约瑟夫函数,用于输出约瑟夫环in t i,j;NODE *q;f or( i =l;inext;计算出列者序号q= p - n ext;p-next=q-n e xt;p rintf( %d ”, q-n u m);f r e e
3、(q);pne x t=NUL L ;v oid mai n ()NODE * h ead;int n ,s,m;in t i;/拟定计算系数1 51 8011 8 _文1沛航*pri n tf( * *水* * 物理网 1 班-* * * n);p rinIf(“围绕圆桌的人数为人n);scan f (%d ,&n);prinlf(从第几人开始? n);scanf( %d,&s);print f (“数到几的人出列?n);scan f ( %d,&m);。 拟定头指针head=c r e a t e linklist(n);。 i f (s= 1 )3 f o r(i=l;ine x t ;
4、 el s e。for(i=l;in e xt;。/ /输出约瑟夫环出列顺序pr i ntf (出列的顺序如下:n);jose p h(head, n , m);一、实验目的I、熟悉VC环境,学习使用C语言运用链表的存储结构解决实际 的问题。2、在编程、上机调试的过程中,加深对线性链表这种数据结构 的基本概念理解。3、锻炼较强的思维和动手能力和更加了解编程思想和编程技 巧。二、实验内容1、采用单向环表实现约瑟夫环。请按以下规定编程实现:从键盘输入整数m,通过cr e ate函数生成一个具有m个结点 的单向环表。环表中的结点编号依次为1, 2,mo从键盘输入整数s (k = sCm)和n,从环表
5、的第s个结点开始 计数为1,当计数到第n个结点时,输出该第n结点相应的编 号,将该结点从环表中消除,从输出结点的下一个结点开始重 新计数到n,这样,不断进行计数,不断进行输出,直到输出了 这个环表的所有结点为止。例如,m=l 0 , s =3, n=4o 则输出序列为:6, 10,4, 9,5, 2, 1, 3,8, 7o三、程序设计1、概要设计为了解决约瑟夫环的问题,我们可以建立单向环表来存储每 个人的信息(该人的编号以及其下一个人的编号),及结点,人 后通过查找每个结点,完毕相应的操作来解决约瑟夫问题。(1)抽象数据类型定义A D T Jo h 数据对象:D=q lq e ElemSet,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 约瑟夫 实验 报告
限制150内