队列(约瑟夫环)
来源:互联网 发布:手机购物安全软件 编辑:程序博客网 时间:2024/06/10 23:44
/**创建队列 *使用约瑟夫环 *编号为1、2、3…n的n个小朋友按顺时针方向围坐一圈,*若从1号小朋友开始按顺时针方向从1顺序报数,报m的小朋友则出列,*然后从他在顺时针方向的下一位开始,继续从1开始报数,报m者出列,*如此下去,直到所有的小朋友均出列为止。*试设计一程序,输出出列小朋友编号的序列。*/#include "stdio.h"#define MAXQSIZE 100#define TRUE 1#define OK 1#define FALSE 0#define OVERFLOW 0typedef struct{ int elem[MAXQSIZE]; int front; //队头指针int rear; //队尾指针}SeQueue;void Init_SeQueue(SeQueue *sq){ //初始化队列;sq->front = sq->rear = 0;}int Empty_SeQueue(SeQueue *sq){ //判断队列空;if(sq->front == sq->rear)return TRUE;return FALSE;}int In_SeQueue(SeQueue *sq, int x){//入队;if(((sq->rear + 1)%MAXQSIZE) == sq->front )return 0;else{sq->elem[sq->rear] = x;sq->rear = (sq->rear + 1) % MAXQSIZE;return OK;}}int Out_SeQueue (SeQueue *sq, int *y){//出队;if( Empty_SeQueue(sq))return FALSE;*y = sq->elem[sq->front];sq->front = (sq->front+1)% MAXQSIZE;return OK;}main(){ //编写代码;int m, n,count = 0;SeQueue sq;Init_SeQueue(&sq);printf("入队:\n");scanf("%d%d",&n, &m);int i = 0;for(i; i < n; i++){In_SeQueue(&sq,i);}while(Empty_SeQueue(&sq) != 1){Out_SeQueue(&sq,&i);if(count == m){printf("%d ",i);count = 0;}elseIn_SeQueue(&sq,i);count++;}return 0;}
0 0
- 队列(约瑟夫环)
- 约瑟夫环 (队列实现)
- 简单约瑟夫环【队列实现】
- 约瑟夫环的队列实现
- poj3750约瑟夫环,循环队列
- 队列模拟解决约瑟夫环问题
- 循环队列解决约瑟夫环问题
- 循环队列解决约瑟夫环问题。
- poj 3254约瑟夫问题(队列实现)
- Luogu-p1996约瑟夫问题(循环队列)
- 约瑟夫问题(约瑟夫环) java
- 队列与约瑟夫问题
- 队列实现约瑟夫问题
- 约瑟夫环(joseph)
- 约瑟夫环(链表)
- 约瑟夫环(JosephProblem)
- poj1012Joseph(约瑟夫环)
- 约瑟夫环(Java)
- linux---tr,col,join,paste,expand 字符转换命令
- JSON.parse()和JSON.stringify()
- 求线段长
- okhttp教程
- 通过url启动Jenkins
- 队列(约瑟夫环)
- Lock wait timeout exceeded
- laravel身份验证-Auth的使用
- Pandas入门(二)——DataFrame结构及常用操作
- **Android 基础知识点 防忘记**
- java数组赋值
- solr 5.0以后 没有schema.xml未自动创建schema文件
- 配置连接池中空闲连接过期超时释放
- 深入适配器模式