用链表实现队列操作,代码如下:

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <malloc.h> using namespace std; //函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2 typedef int Status;
typedef int QElemType; typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode, *QueuePtr; typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue; Status InitQueue(LinkQueue &Q) {
Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));
if (!Q.front) exit(OVERFLOW);
Q.front->next = NULL;
return OK;
} Status DestroyQueue(LinkQueue &Q) {
while (Q.front) {
cout << Q.front->data << endl;
Q.rear = Q.front->next;
free(Q.front);
Q.front = Q.rear;
}
return OK;
} Status EnQueue(LinkQueue &Q, QElemType e) {
Q.rear->next = (QueuePtr)malloc(sizeof(QNode));
if (!Q.rear->next) exit(OVERFLOW);
Q.rear->data = e;
Q.rear = Q.rear->next;
Q.rear->next = NULL;
return OK;
} Status DeQueue(LinkQueue &Q, QElemType &e) {
if (Q.front == Q.rear)
return ERROR;
e = Q.front->data;
QueuePtr p = Q.front;
Q.front = Q.front->next;
free(p);
return OK;
} bool EmptyQueue(LinkQueue &Q) {
return Q.front == Q.rear;
} int main()
{
LinkQueue A, B;
InitQueue(A);
InitQueue(B);
int n, m;
cin >> n;
for (int i = ; i < n; ++i) {
cin >> m;
if (m & )
EnQueue(A, m);
else
EnQueue(B, m);
}
bool ok = false;
while (!EmptyQueue(A) && !EmptyQueue(B)) {
DeQueue(A, m);
if (ok)
cout << ' ' << m;
else
cout << m; if (!EmptyQueue(A)) {
DeQueue(A, m);
cout << ' ' << m;
}
DeQueue(B, m);
cout << ' ' << m;
ok = true;
}
while (!EmptyQueue(A)) {
DeQueue(A, m);
if (ok)
cout << ' ' << m;
else
cout << m;
ok = true;
}
while (!EmptyQueue(B)) {
DeQueue(B, m);
if (ok)
cout << ' ' << m;
else
cout << m;
ok = true;
}
return ;
}

PTA 7-1 银行业务队列简单模拟的更多相关文章

  1. 利用链式队列(带头节点)解决银行业务队列简单模拟问题(c++)-- 数据结构

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

  2. PTA 数据结构 银行业务队列简单模拟

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

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

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

  4. Linux 内核 链表 的简单模拟(1)

    第零章:扯扯淡 出一个有意思的题目:用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量,如 struct student { int a; //FIND(struct stu ...

  5. PTA 7-3 Windows消息队列 (25分)

    PTA 7-3 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列 ...

  6. java web学习总结(二十二) -------------------简单模拟SpringMVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

  7. WPF简单模拟QQ登录背景动画

    介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...

  8. Linux 内核 链表 的简单模拟(2)

    接上一篇Linux 内核 链表 的简单模拟(1) 第五章:Linux内核链表的遍历 /** * list_for_each - iterate over a list * @pos: the & ...

  9. JavaWeb学习总结(四十九)——简单模拟Sping MVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

随机推荐

  1. postgresql修改数据库名

    alter database abc rename to cba;

  2. HDU 5875 H - Function 用单调栈水过了

    http://acm.hdu.edu.cn/showproblem.php?pid=5875 单调栈,预处理to[i]表示第一个比a[i]小的数字,一直跳就可以. 这题是数据水而已. 这里学习下单调栈 ...

  3. MiniDao分页的坑

    //TODO 此处切记不要传(page-1)*rows,MiniDAO底层已经做了此运算,.sql文件中也无需写limit,会自动加上List<BcProjectSampleBackEntity ...

  4. 【持续更新】Spring相关

    什么是IoC 什么是AoP Bean的实例化方法--3种 Bean的作用域--常用2种 Bean的生命周期 Bean的装配方式 基于xml的2种装配方式 基于Annotaton的装配方式

  5. Appium基础五:appium相关API

    1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...

  6. zabbix2升级zabbix3

    1.停服zabbix2,停服数据库/etc/init.d/zabbix_server stop/etc/init.d/mysqld stop 2.物理备份数据库cd /var/lib/mysql/ta ...

  7. SAP ERP和C4C Account和Contact的双向同步

    Account和Contact是C4C里唯一支持可以和ERP进行双向同步的主数据类别. C4C里创建一个Account:Mouser Electronics 在C4C里保存Account,自动同步到E ...

  8. 将Java应用部署到SAP云平台neo环境的两种方式

    方法1 - 使用Eclipse Eclipse里新建一个服务器: 服务器类型选择SAP Cloud Platform: 点Finish,成功创建了一个Server: Eclipse里选择要部署的项目, ...

  9. 2018.3.5 Java语言基础与面向对象编程实践

    Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...

  10. 第三单元OO总结