数据结构实验之栈与队列十一:refresh的停车场

Description

refresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先

进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,

Del 表示停车场中出去了一辆车,Out 表示便道最前面的车辆不再等待,放弃进入停车场)。假设便道内的车辆不超过1000000.

Input

输入为多组数据,每组数据首先输入N和M(0< n,m <200000),接下来输入M条命令。

Output

输入结束后,如果出现停车场内无车辆而出现Del或者便道内无车辆而出现Out,则输出Error,否则输出停车场内的车辆,最后进入的最先输出,无车辆不输出。

Sample

Input

2 6
Add 18353364208
Add 18353365550
Add 18353365558
Add 18353365559
Del
Out

Output

18353365558
18353364208
 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 200004
#define MAXN1 1000004
typedef struct node
{
char num[];
}st;//输入的一串数字,用字符串输入,因为它可能是栈也可能是队,所以用一个结构体,连接;
st stack[MAXN], link[MAXN1]; //定义的栈和队,中括号里面是尺寸大小;
int top, front, rear, n, m, flag;
void Add()
{
if(top < n - )//栈不满时,放在栈里,满了,放在队里;
scanf("%s",stack[++top].num);//++tio先加后用。
else
scanf("%s",link[rear++].num);//rear++先用后加;
}
void Del()
{
if(top == -)//如果栈空,标记一下;
flag = ;
else
{
if(rear > front)//如果队里有数,让队的第一个数赋给栈的最后一个,覆盖掉,然后front++,表示原来的front下的数被抛弃;
{
stack[top] = link[front];
front++;
}
else//如果队里没数,直接栈里减减;
top--;
}
}
void Out()
{
if(rear > front)//如果队里有数,第一个数被抛弃;
front++;
else//如果队里没数,标记一下
flag = ;
}
void Pri()
{
for(; top >= ; top--)//top从当前值开始倒序输出;
printf("%s\n",stack[top].num);
}
int main()
{
char s[];
while(~scanf("%d%d",&n,&m))
{
top = -, flag = , front = rear = ;//top是先加后用,front是先用后加,赋初始值不一样;
while(m--)
{
scanf("%s",s);
{
if(!strcmp(s,"Add"))
Add();
else
if(!strcmp(s,"Del"))
Del();
else
if(!strcmp(s,"Out"))
Out();
}
}
if(flag)
Pri();//如果flag = 1,可以输出;
else
printf("Error\n");//如果flag =0;表示有错误命令,直接输出Error;
}
return ;
}

数据结构实验之栈与队列十一:refresh的停车场的更多相关文章

  1. SDUT-2088_数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description refresh最近发 ...

  2. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

  3. SDUT-1479_数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的行编辑程序的功能是:接受用 ...

  4. SDUT-3335_数据结构实验之栈与队列八:栈的基本操作

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 堆栈是一种基本的数据结构.堆栈具 ...

  5. SDUT-3334_数据结构实验之栈与队列七:出栈序列判定

    数据结构实验之栈与队列七:出栈序列判定 Time Limit: 30 ms Memory Limit: 1000 KiB Problem Description 给一个初始的入栈序列,其次序即为元素的 ...

  6. SDUT-3332&3333_数据结构实验之栈与队列五:下一较大值

    数据结构实验之栈与队列六:下一较大值 Time Limit: 150 ms Memory Limit: 8000 KiB Problem Description 对于包含n(1<=n<=1 ...

  7. SDUT-2134_数据结构实验之栈与队列四:括号匹配

    数据结构实验之栈与队列四:括号匹配 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给你一串字符,不超过50个字符,可能 ...

  8. SDUT-2133_数据结构实验之栈与队列三:后缀式求值

    数据结构实验之栈与队列三:后缀式求值 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运算符的后缀表示式 ...

  9. SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式

    数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...

随机推荐

  1. ATL的GUI程序设计(2)

    from:http://blog.titilima.com/atlgui-2.html 第二章 一个最简单窗口程序的转型 我知道,可能会有很多朋友对上一章的"Hello, World!&qu ...

  2. ORB-SLAM2 初体验 —— 配置安装

    转载请注明出处,谢谢 原创作者:MingruiYU 原创链接:https://www.cnblogs.com/MingruiYu/p/12286752.html ORB-SLAM2作为目前应用最广泛的 ...

  3. python 迭代器和生成器详解

    一.迭代器 说迭代器之前有两个相关的名词需要介绍:可迭代对象:只要定义了__iter__()方法,我们就说该对象是可迭代对象,并且可迭代对象能提供迭代器.迭代器:实现了__next__()或者next ...

  4. [python]locals内置函数

    locals() Update and return a dictionary representing the current local symbol table. Free variables ...

  5. postman之签名接口校验

    有些接口在传参时,需要先对接口的参数进行数据签名加密,如pinter项目的中的签名接口 ,该接口参数如下: {"phoneNum":"123434"," ...

  6. 1.【Spring Cloud Alibaba】服务发现-Nacos

    一.服务的提供者与服务的消费者 二.服务发现原理 如果用户中心地址发生变化怎么办? 服务的消费者总能找到服务的提供者的这种原理,即服务发现原理. 三.什么是Nacos? Nacos文档地址请查看,引入 ...

  7. 20191231--python学习第五天

    1.内容回顾与补充 int类型 (1)py2与py3的区别 (2)除法 (3)强制转换 int('字符串') [重要] int(布尔值):返回的结果只有0和1 bool类型 (1)强制转换: bool ...

  8. python 分析慢查询日志生成报告

    python分析Mysql慢查询.通过Python调用开源分析工具pt-query-digest生成json结果,Python脚本解析json生成html报告. #!/usr/bin/env pyth ...

  9. Class Literal(Java)

    前言 上一节我们讨论过通过关键字synchronized实现线程同步,同时最主要了解到在Java中className.class所代表的具体含义,在博客写完后,感觉还是有点迷糊,然后再次深入了解后,原 ...

  10. 5G和AI会碰撞出什么样的火花呢?

    本文学习和分享一篇综述文章,这篇文章是东南大学移动通信国家重点实验室主任.长江学者特聘教授尤肖虎教授2019年发表在<中国科学 信息科学>(<SCIENCE CHINA Inform ...