#include <iostream>
#include <malloc.h>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int QElemType;
int MAXQSIZE;
typedef struct //结构声明
{
QElemType *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue &Q)
{
Q.base = (QElemType*)malloc(MAXQSIZE*sizeof(QElemType));
if(!Q.base)
exit(OVERFLOW);
Q.front = Q.rear = 0;
return OK;
}
Status EnQueue(SqQueue& Q,QElemType e)
{
if((Q.rear+1)%MAXQSIZE == Q.front)
return ERROR;
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1)%MAXQSIZE;
return OK;
}
Status DeQueue(SqQueue& Q,QElemType& e)
{
if (Q.front == Q.rear)
return ERROR;
e = Q.base[Q.front];
Q.base[Q.front] = 0;
Q.front = (Q.front+1)%MAXQSIZE;
return OK;
}
Status Josephus(SqQueue& Q,int m)
{
int c=1;
while(TRUE)
{
int i = 1;
int num = 0;
while (i++ != m)
{
DeQueue(Q,num);
EnQueue(Q,num);
}
DeQueue(Q,num);
cout<<"第"<<c<<"个出圈的人为"<<num<<" "<<endl;
c++;
if (Q.front == Q.rear)
break;
}
cout<<endl;
return OK;
}
int main()
{
SqQueue que;
int m,n;
cout<<"请输入围坐的人个数n:";
cin>>n;
cout<<"请输入密码m:";
cin>>m;
MAXQSIZE = ++n;
InitQueue(que);
for(int i =1;i<=n;i++)
{
EnQueue(que,i);
}
Josephus(que,m);
return 0;
}
YSF-duilie.rar_约瑟夫环 课程设计
版权申诉
48 浏览量
2022-09-24
14:39:06
上传
评论
收藏 742B RAR 举报
林当时
- 粉丝: 100
- 资源: 1万+
最新资源
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈