5-18 银行业务队列简单模拟 (25分)
来源:互联网 发布:非农历史数据一览表 编辑:程序博客网 时间:2024/04/30 06:03
5-18 银行业务队列简单模拟 (25分)
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。
输入格式:
输入为一行正整数,其中第1个数字N(\le≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。
输出格式:
按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。
输入样例:
8 2 1 3 9 4 11 13 15
输出样例:
1 3 2 9 11 4 13 15
STL__queue 队列
一、原理queue 队列也是一个线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出FIFO(First In First Out)表。插入一端称为队尾,删除一端称为队首。
默认使用双端队列deque来实现,queue也可看成一个容器适配器,将 deque 容器转换为 queue 容器。当然,也可以利用其他合适的序列容器作
为底层实现queue容器。
C++ STL对queue队列的泛化,是通过模板类型,将默认的deque双端队列类型导入,在内部创建一个序列容器对象,来处理 queue队列的数据存储和操作,包括queue队列是否为空、取队首元素、取队尾元素、元素入队和元素出队等。由于仅需要取队首和队尾元素的操作,因此queue队列容器并不提供任何类型的迭代器。
二、应用
1、创建
(1)queue() 默认的构造函数,创建一个空的 queue 对象。
queue<int> q;//使用默认的双端队列为底层容器创建了一个空的queue队列对象q,数据元素为int类型
(2)queue(const queue&) 复制构造函数,用一个queue对象创建新的queue对象。
//queue<int, list<int> > q1;
queue<int, list<int> > q2(q1);//以双向链表为底层容器的queue对象
2、入队和出队
void push(const value_type& x) //插入队列
void pop()//出队,从队列中删除
3、取队首尾元素
queue队列容器的front函数和back函数,可分别读取队首和队尾元素。
(1)value_type& front() 读取队列的队首元素。
(2)value_type& back() 读取队列的队尾元素。
4、其它
(1)bool empty() //判断空
(2)size_type size() //队列大小
代码:(第一次试着用STL容器写,哈哈。。。。)
1 #include "stdio.h" 2 #include "queue" 3 #include "iostream" 4 using namespace std; 5 int main() { 6 int num,i; 7 scanf("%d", &num); 8 queue<int> A,B; 9 for (int i = 0; i < num; i++) {10 int temp;11 scanf("%d", &temp);12 if(temp % 2){ //奇数13 A.push(temp);14 }15 else{16 B.push(temp);17 }18 }19 int flag = 0;20 if(!A.empty()){//为了空格问题21 printf("%d", A.front());22 A.pop();23 i = 1;24 }25 else{26 printf("%d", B.front());27 B.pop();28 }29 while (!B.empty() || !A.empty()) {//至少一个非空30 i++;31 if(i % 2){32 if(!A.empty()){33 printf(" %d", A.front());34 A.pop();35 }36 }37 else{38 if(!A.empty()){39 printf(" %d", A.front());40 A.pop();41 }42 if(!B.empty()){43 printf(" %d", B.front());44 B.pop();45 }46 }47 }48 printf("\n");49 return 0;50 }
- 5-18 银行业务队列简单模拟 (25分)
- PTA-数据结构 5-18 银行业务队列简单模拟 (25分)
- 5-18 银行业务队列简单模拟 (25分)
- 5-18 银行业务队列简单模拟 (25分)
- 5-18 银行业务队列简单模拟 (25分)
- 5-18 银行业务队列简单模拟 (25分)
- PTA 7-3(队列) 银行业务队列简单模拟(25 分) 25分代码
- 7-5 银行业务队列简单模拟(25 point(s))
- PTA-银行业务队列简单模拟
- 7-1 银行业务队列简单模拟
- 7-1 银行业务队列简单模拟
- PTA 7-3 银行业务队列简单模拟
- 5-22 堆栈模拟队列 (25分)
- 5-22 堆栈模拟队列 (25分)
- 实验案例3-3银行业务队列简单模拟:
- PAT银行业务简单模拟
- 银行业务对列简单模拟
- 《数据结构学习与实验指导》3-3:银行业务队列简单模拟
- PHP中的0,‘’,null和false原来是一样的?!
- angular2 开发起步。
- Suffix_Array模板重置版
- Open vSwitch使用
- (转)移动互联加速金融科技的渗透 中国将成为全球最大智能投顾市场
- 5-18 银行业务队列简单模拟 (25分)
- JavaScript中用let语句声明作用域的用法讲解
- [vijos1456] 最小总代价
- 模板测试
- 说说那些我也不太懂的 Python 高阶函数
- Linux搭建负载均衡集群,使用LVS的NAT模式
- JDBC与JDBC-2、开发
- 函数式编程
- slf4j-api、slf4j-log4j12以及log4j之间什么关系?