用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

银行业务队列简单模拟

2017-09-29 作者:芙蓉妹妹举报

[c++]代码库

#include<iostream>
using namespace std;
#define MAXSIZE 1000
typedef int QElemType;
typedef struct
{
    QElemType *base;
    int front;
    int rear;
}SqQueue;
void InitQueue(SqQueue &Q)
{
    Q.base=new QElemType[MAXSIZE];
    Q.front=Q.rear=0;
}
void CreateSqQueue(SqQueue &Q1,SqQueue &Q2,int sum)
{
    int a;
    for(int i=0;i<sum;i++)
    {
        cin>>a;
        if(a%2)
        {
            Q1.base[Q1.rear]=a;
            Q1.rear=(Q1.rear+1)%MAXSIZE;
        }
        else
        {
            Q2.base[Q2.rear]=a;
            Q2.rear=(Q2.rear+1)%MAXSIZE;
        }
    }
}
void PrintfSqQueue(SqQueue &Q1,SqQueue &Q2,SqQueue Q3,int s)
{
    int a=1;
    while((Q1.front!=Q1.rear)||(Q2.front!=Q2.rear))
    {
        if((a==1)||(a==2))
        {
            if(Q1.front!=Q1.rear)
            {
                Q3.base[Q3.rear]=Q1.base[Q1.front];
                Q3.rear=(Q3.rear+1)%MAXSIZE;
                Q1.front=(Q1.front+1)%MAXSIZE;
            }
        }
        else
        {
            if(Q2.front!=Q2.rear)
            {
                Q3.base[Q3.rear]=Q2.base[Q2.front];
                Q3.rear=(Q3.rear+1)%MAXSIZE;
                Q2.front=(Q2.front+1)%MAXSIZE;
            }
        }
        a++;
        if(a>3)
            a=1;
    }
    cout<<Q3.base[Q3.front];
    Q3.front=(Q3.front+1)%MAXSIZE;
    for(int i=0;i<s-1;i++)
    {
        cout<<" "<<Q3.base[Q3.front];
        Q3.front=(Q3.front+1)%MAXSIZE;
    }
}
int main ()
{
    int sum;
    SqQueue Q1,Q2,Q3;
    InitQueue(Q1);
    InitQueue(Q2);
    InitQueue(Q3);
    cin>>sum;
    if(sum)
    {
        CreateSqQueue(Q1,Q2,sum);
        PrintfSqQueue(Q1,Q2,Q3,sum);
    }
    else
        cout<<"0"<<endl;
    return 0;
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。