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;

    }

  • 相关阅读:
    我们是如何实现DevOps的
    cmp命令
    全排列II
    chown命令
    两个数组的交集II
    MVVM模式的理解
    chmod命令
    路径总和
    cat命令
    跳水板
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457684.html
Copyright © 2011-2022 走看看