**

7-4 银行业务队列简单模拟 (15 分)

**
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。

输入格式:

输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。

输出格式:

按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。

输入样例:

8 2 1 3 9 4 11 13 15
//结尾无空行

输出样例:

1 3 2 9 11 4 13 15
//结尾无空行

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef enum { push, pop, end } Operation;
typedef enum { false, true } bool;
typedef int ElementType;
typedef int QElemType;
typedef int Position;
typedef int  Status;typedef struct QNode{//队列QElemType *Data;int front; //头指针,若队列不空,指向队列头元素int rear; //尾指针,若队列不空,指向队列尾元素的下一个位置int MaxSize;
} Queue,*QStack;QStack QCreateStack(int MaxSize){//创建队列QStack S = (QStack)malloc(sizeof(Queue));S->Data = (QElemType *)malloc(MaxSize * sizeof(QElemType));S->front=S->rear=0;S->MaxSize = MaxSize;return S;}void QPush( QStack S, QElemType x){//入队列S->rear++;S->Data[S->rear]=x;}QElemType QPop(QStack S){//出队列int a;if(S->rear!=S->front){S->front++;return S->Data[S->front];}elsereturn 0;}void cha(QStack S1,QStack S2,int a){int i,j=0;while(S1->rear!=S1->front||S2->rear!=S2->front){for(i=0;i<2;i++){if(S2->rear!=S2->front){printf("%d",QPop(S2));j++;if(j!=a){printf(" ");}}}if(S1->rear!=S1->front){printf("%d",QPop(S1));j++;if(j!=a){printf(" ");}}}}int main(){QStack S1,S2;int a,i;scanf("%d",&a);int b[a];//建立队列S1=QCreateStack(a);//偶数S2=QCreateStack(a);//奇数//入队列for(i=0;i<a;i++){scanf("%d",&b[i]);if(b[i]%2==0){//printf("%d!",b[i]);QPush(S1, b[i]);}elseQPush(S2, b[i]);}cha(S1,S2,a);return 0;}

7-4 银行业务队列简单模拟 (15 分)相关推荐

  1. 7-18 银行业务队列简单模拟 (25 分)

    7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...

  2. 银行业务队列简单模拟 (25 分)c语言c++

    7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银 ...

  3. 7-45 银行业务队列简单模拟 (10 分)

    7-45 银行业务队列简单模拟 (10 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...

  4. 银行业务队列简单模拟Java程序设计_PTA 数据结构 银行业务队列简单模拟

    仅供参考,请勿粘贴 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完 ...

  5. PTA: 7-2 银行业务队列简单模拟 (25 分)

    大一下半期数据结构 数据结构题目集 7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客 ...

  6. 7-18 银行业务队列简单模拟

    7-18银行业务队列简单模拟 完整题目 **输入格式:** **输出格式:** **输入样例:** **输出样例:** **具体思路** **完整代码实现:** 我的一些问题 完整题目 设某银行有A. ...

  7. (原创)7-1 银行业务队列简单模拟 (30 分)

    设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列 ...

  8. 7-1 银行业务队列简单模拟 (25 分)

    题目: 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完成的顺序输出 ...

  9. 银行业务队列简单模拟(队列queue)

    设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列 ...

最新文章

  1. 如何用asp.net向其他服务器post一条信息
  2. IE6左右边框断线现象
  3. LeetCode 743. Network Delay Time
  4. cve-2016-6664 mysql本地提权
  5. linux c 随机函数 rand srand 介绍
  6. python的热潮_Python这么热,要不要追赶Python学习热潮?
  7. 微信小程序-设置启动页面
  8. mysql数据库技术基本操作_MySQL数据库的基础操作
  9. cad.net 获取所有已经安装的cad版本信息
  10. java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件
  11. python的前端开发_Python开发【前端】:html
  12. 文都计算机考研辅导班哪个好,考研辅导班哪个好,海文还是文都?
  13. 25.211 -- 物理层信道
  14. JMX Java Management Extensions
  15. socket与sock的联系
  16. pandas中每个元素减去所在行的平均值
  17. 某音App protobuf协议还原逆向分析
  18. Javaweb ajax实现分页
  19. 《安富莱嵌入式周报》第287期:下一代Windows12界面,支持各种工业以太网协议参考,百款在线电子开发工具,seL4安全微内核,旋转拨号手机,PSP掌机逆向
  20. Dockerfile镜像构建用法

热门文章

  1. 电梯管理php,写字楼物业电梯管理规定
  2. excel python插件_如何利用Excel与Python制作PPT
  3. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet
  4. Linux的一些简单命令操作
  5. Memcache 安装
  6. 2018-12-25 上机作业
  7. 使用OpenCV提取不同颜色物体
  8. $.grep()函数
  9. 常见的Activity Action Intent常量
  10. [原]简述Field,Attribute,Property的区别