PTA 7-1 银行业务队列简单模拟
用链表实现队列操作,代码如下:
#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 银行业务队列简单模拟的更多相关文章
- 利用链式队列(带头节点)解决银行业务队列简单模拟问题(c++)-- 数据结构
题目: 7-1 银行业务队列简单模拟 (30 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客 ...
- PTA 数据结构 银行业务队列简单模拟
仅供参考,请勿粘贴 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完 ...
- 银行业务队列简单模拟(队列queue)
设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列 ...
- Linux 内核 链表 的简单模拟(1)
第零章:扯扯淡 出一个有意思的题目:用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量,如 struct student { int a; //FIND(struct stu ...
- PTA 7-3 Windows消息队列 (25分)
PTA 7-3 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列 ...
- java web学习总结(二十二) -------------------简单模拟SpringMVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
- WPF简单模拟QQ登录背景动画
介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...
- Linux 内核 链表 的简单模拟(2)
接上一篇Linux 内核 链表 的简单模拟(1) 第五章:Linux内核链表的遍历 /** * list_for_each - iterate over a list * @pos: the & ...
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
随机推荐
- (转)Mysql数据库之Binlog日志使用总结CentOS 7.x设置自定义开机启动,添加自定义系统服务
Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: li ...
- 省厅报件7.0 读取mdb 生成xml 文件
using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System ...
- 第十七章 提升用户体验 之 使用MVC扩展功能控制程序行为
1. 概述 ASP.NET MVC具有很好的扩展性,每一个核心功能都可以被扩展.重写 和 定制. 本章内容包括:实现MVC过滤器和controller工厂.使用 action results,view ...
- Redis hash(哈希)
Redis hash可储存多个键值对,适合储存对象的属性. 1.hset key fieldName fileValue //hset即hash set,set这里是设置的意思.往hash中添加 ...
- http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/index.html
<html> <head> <style> textarea{ width:800p ...
- JavaBean+jsp开发模式 --结合form表单 实例
1.创建form表单 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- countUp 动画展示数字变化
html <p id="countUp" style="font-size:25px;height:25px;background-color:#0aa;" ...
- 一个mybatis错误导致无法启动项目的问题
今天遇到Mybatis一个问题,导致项目一直起不来,查了很久发现是MapperXML的错,问题表现为: 系统始终起不来,但也不报错,始终卡到如下信息位置: 信息: Initializing Sprin ...
- coreData-Fetching Managed Objects
https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CoreDataSnippets ...
- JavaScript内存泄露,闭包内存泄露如何解决
本文原链接:https://cloud.tencent.com/developer/article/1340979 JavaScript 内存泄露的4种方式及如何避免 简介 什么是内存泄露? Java ...