📄 josephu.cpp
字号:
#include "stdio.h"
#include "stdlib.h"
//#include "dos.h"
//#include "string.h"
#include <iostream.h>
//结点
typedef struct node {
int id; //编号
int dirty; //记录是否被扔过
struct node * next;
} NODE;
//海
typedef struct sea {
int id; //编号
// int no;
struct sea * link;
} SEA;
SEA *seatop=NULL;
void push(NODE *x,SEA **toppt)
{
SEA *p=(SEA *)malloc(sizeof(SEA));
p->id=x->id;
p->link=*toppt;
*toppt=p;
}
int pop(int *id,SEA **toppt)
{
SEA *p=*toppt;
if(toppt==NULL) return 1;
*id=p->id;
id=id;
*toppt=p->link;
free(p);
return 0;
}
void del(NODE *back,NODE *index)
{
back->next=index->next;
//free(index);
//index=back;
//cout<<back->id<<endl;
//cin.get();
}
void insert(NODE *index,int id)
{
NODE *u;
u=(NODE *)malloc(sizeof(NODE));
u->id=id;
id=id;
u->next=index->next;
index->next=u;
index=index->next;
}
void main(void)
{
node *index,*back,*head,*tail,*p;
int insea=0;
index=back=head=tail=NULL;
back=back;
int index9,index11;
index9=1;index11=1;
for(int i=0;i<30;i++)
{
p=(struct node *)malloc(sizeof(struct node));
//NODE *p;
p->id=(i+1);
p->dirty=0;
p->next=head;
if(head==NULL) head=tail=p;
else tail=tail->next=p;
}
index=head;
while(insea<15)
{
if(index9%9==0&&index11%11!=0)
{
index->dirty=1;
push(index,&seatop);
del(back,index);////del
//push(index,seatop);
insea++;
};
if(index11%11==0&&index9%9!=0)
{
//insert(index,seatop);
int temp=0;
pop(&temp,&seatop);
insert(index,temp);
insea--;
}
index9++;
index11++;
back=index;
index=index->next;
//cout<<index->id<<endl;
}
for(i=0;i<15;i++)
{
if(index->dirty==0)
cout<<"clearman"<<index->id<<endl;
cout<<index->id<<'\t';
index=index->next;
cout<<seatop->id<<endl;
seatop=seatop->link;
}
//cin.get();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -