zoukankan      html  css  js  c++  java
  • 约瑟夫环的队列实现

    //循环队列

    //约瑟夫环

    #include<conio.h>

    #include<stdio.h>

    #include<iostream>

    #define Size 10

    using namespace std;

    class Joseph{

    private:

     int num[Size];//队列

     int first;//第一个人

     int top;//累加器上限

     int front;//队首

     int rear;//队尾

     int cnt;//累加器

    public:

    Joseph()

    {

    int i;

    front = 0;

    rear  = 0;

    cnt   = 0;

    for(i=0;i<Size;i++){

    if((rear+1)%Size-front){

    in(i);

    }//if

    }//for

    }//Joseph()

    void out()

    {

    front=(front+1)%Size;

    }//out()

    void in(int val)

    {

          rear=(rear+1)%Size;

      num[rear]=val;

    }//in()

     void JosephRoll()

    {

    cout<<"Please input the first number:";

            scanf("%d",&first);

    cout<<"Please input the next number:";

    scanf("%d",&top);

    while(num[(front+1)%Size]-first){

                out();

    in(num[front]);

    cout<<num[front]<<endl;

    }//while

    while(rear-front){

    cnt=0;

    while(cnt-top){

    out();

    in(num[front]);

    cnt++;

    }//while(cnt-top-2)

    out();

    cout<<"num:"<<num[front]<<endl;

    }//while(rear-front)

    }

    };

    int main(void)

    {

    Joseph Roll1;

    Roll1.JosephRoll();

    return 0;

    }

  • 相关阅读:
    【SCOI 2011】 糖果
    【POJ 3159】 Candies
    【POJ 1716】 Integer Intervals
    【POJ 2983】 Is the information reliable?
    【POJ 1364】 King
    【POJ 1201】 Intervals
    【POJ 1804】 Brainman
    6月10日省中提高组题解
    【POJ 3352】 Road Construction
    【POJ 1144】 Network
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457684.html
Copyright © 2011-2022 走看看