天天看點

鍊隊列約瑟夫環c++代碼_約瑟夫環的c語言實作(代碼已實作)

# include

#define MAXLEN 20

int front=MAXLEN-1;//隊列初始化

int rear=MAXLEN-1;

enqueue(int q[],int x) //入隊

{

rear=(rear+1)%MAXLEN;

q[rear]=x;

}

int dequeue(int q[])  //出隊

{

front=(front+1)%MAXLEN;

return q[front];

}

Void main()

{

int i,j,y,n,m;  //j是,y是,n是參與的人數,m是出列時所報的數

int q[20];

printf("請依次輸入參與的人數和出列時報的數:");

scanf("%d%d",&n,&m);

printf("人數=%d,出列數字=%d\n",n,m);

for(i=1;i<=n;i++) //隊列的元素進隊

enqueue(q,i);

j=n; //j初始化,代表剩餘未出列的人數

printf("輸出出列順序如下所示:");

while(j!=0) //當報數i=m時删掉此元素,元素出列,i用來計報的數,判斷是否出列

{

for(i=1;i<=m;i++) {

y=dequeue(q);

if(i!=m)

enqueue(q,y);

else

{

printf("%2d",y);

j--;

}

printf("\n");

}

}

}

鍊隊列約瑟夫環c++代碼_約瑟夫環的c語言實作(代碼已實作)
鍊隊列約瑟夫環c++代碼_約瑟夫環的c語言實作(代碼已實作)