j数据机构上joseph环代码.docx
《j数据机构上joseph环代码.docx》由会员分享,可在线阅读,更多相关《j数据机构上joseph环代码.docx(11页珍藏版)》请在三一办公上搜索。
1、j数据机构上joseph环代码#includestdio.h#includewindows.h#includemalloc.h#includetime.h#include <stdlib.h>#define OVERFLOW -2 #define OK 1 #define ERROR 0#define N 10typedef struct LNodeint password; /密码int No; /序号 struct LNode *next; /下一成员指针member; /成员结构体typedef int status;status CreateList_Circle(member
2、 *,int);status DeleteNode(member *);typedef struct nodeint num ;int sec ;struct node *pre;struct node *next;body;void Initiate(body *x);void Delect(int x,body *head); status mainint n,m,u;member *head=NULL,*p=NULL; /头指针即首成员地址,遍历指针pprintf ( *n);printf ( JOSEPH环 n);printf ( 编号是1,2,,n的n个人按照顺时针方向围坐一圈,每n
3、);printf ( 个人只有一个密码。一开始任选一个正整数作n);printf ( 为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报n);printf ( 数,报到m时停止报数。报m的人出列,将他的密码作为新n);printf ( 的m值,从他在顺时针方向的下一个人开始重新从1报数,如n);printf ( 此下去,直到所有人全部出列为止。设计一个程序来求出出n);printf ( 列顺序。n);printf ( *n);printf ( 要求:n);printf ( 利用单向循环链表存储结构模拟此过程,按照出列的顺序输n);printf ( 出各个人的编号。n);while(1)pr
4、intf ( *n);printf ( 1 由计算机随机产生约瑟夫环 n);printf ( 2 输入指定约瑟夫环 n);printf ( 3 离开 n);printf ( *n);printf ( 请选择序号: );scanf(%d,&u);if(u=1)int m;body *first;first=(body *)malloc(sizeof(body);first->next=first;first->pre=first;Initiate(first);m=rand%(N-1);m=m+1;printf(nn 任意数m=%dn,m);Delect(m,first); else i
5、f(u=2)printf ( 请输入人数: );scanf (%d,&n); /总成员数while (n<=0)printf ( 输入错误,请重新输入: n);scanf (%d,&n);if(!CreateList_Circle(&head,n) /创建循环链表,返回头指针headreturn OVERFLOW; printf ( 请输入上限值m: );scanf (%d,&m); /初始mwhile (m<=0)printf ( 输入错误,请重新输入: n);scanf (%d,&m); printf ( 出列顺序为:);p=head;while (n>=2) /寻找出列成员i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 机构 joseph 代码
链接地址:https://www.31ppt.com/p-3159884.html