refresh的停车场
题目描述
输入
输出
示例输入
2 6 Add 18353364208 Add 18353365550 Add 18353365558 Add 18353365559 Del Out
示例输出
18353365558 18353364208 #include <stdio.h> #include <stdlib.h> #include <string.h> #define stackmax 10000 #define stacknum 11111 typedef long long int ElenType; typedef struct { ElenType *base; ElenType *top; int stacksize; }SqStack; int InitStack(SqStack &S)//栈的初始化; { S.base=(ElenType *)malloc(sizeof(ElenType)*stacknum); if(!S.base) exit(0); S.top=S.base; S.stacksize=stacknum; return 1; } void push(SqStack &S,ElenType &e)//进栈; { if(S.top-S.base>=S.stacksize) { S.base=(ElenType *)realloc(S.base,sizeof(ElenType)*(stacknum+stackmax)); if(!S.base) exit(0); S.top=S.base+S.stacksize; S.stacksize+=stackmax; } *S.top++=e; } int pop(SqStack &S)//出栈; { if(S.top==S.base) return 0; S.top--; return 1; } int StackEmpty(SqStack &S)//判断栈是否为空栈; { if(S.top==S.base) return 1; else return 0; } void print(SqStack &S)//栈的元素的输出; { while(!StackEmpty(S)) { S.top--; printf("%lld\n",*S.top); } } typedef long long int QElemType; typedef long long int Status; typedef struct QNode { QElemType data; 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(0); q.front->next=NULL; return 1; } Status EnQueuer(LinkQueue &q, QElemType &e)//进队; { Queueptr p; p=(Queueptr)malloc(sizeof(QNode)); if(!p) exit(0); p->data=e; p->next = NULL; q.rear->next=p; q.rear=p; return 1; } Status DeQueuel(LinkQueue &Q,QElemType &e)//出队; { Queueptr p; if(Q.front==Q.rear) return 0; p=Q.front->next; e=p->data; Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(p); return 1; } int EmptyQueue(LinkQueue q)//判断是否为空队; { if(q.front==q.rear) return 1; else return 0; } QElemType Queuelength(LinkQueue q)//队的长度‘ { QElemType i=0; Queueptr p; p=q.front; while(p!=q.rear) { i++; p=p->next; } return i; } int main() { long int i,n,m; long long int num; char c[4]; while(~scanf("%ld%ld",&n,&m)) { SqStack S; InitStack(S); LinkQueue Q; InitQueue(Q); int flag=1; for(i=1; i<=m; i++) { scanf("%s", c); if(strcmp(c,"Add")==0) { scanf("%lld",&num); if(S.top-S.base<n)//判断栈停车位是否已满, push(S, num); else EnQueuer(Q,num); } if(strcmp(c,"Del")==0) { if(StackEmpty(S)) flag=0;//标记不合法的命令; else { pop(S); DeQueuel(Q,Q.front->data); push(S,Q.front->data); } } if(strcmp(c,"Out")==0) { if(EmptyQueue(Q)) flag=0;//标记不合法的命令; else { DeQueuel(Q,Q.front->data); } } } if(flag==0) printf("Error\n"); else print(S);//栈内元素的输出; } } #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <queue> #include <stack> using namespace std; int main() { int N,M,x,t; while(~scanf("%d %d",&N,&M)) { char minglin[10],num[100]; queue<string>qd;//队列的定义; stack<string>sz;//栈的定义; t=0; while(M--) { scanf("%s",minglin); if(minglin[0]=='A') { scanf("%s",num); x=sz.size();//栈的长度; if(x<N) sz.push(num);//进栈; else qd.push(num);//进队; } else if(minglin[0]=='D') { if(sz.empty())//空栈; t=1; else { sz.pop();//出栈; if(!qd.empty()) { sz.push(qd.front());//进栈; qd.pop();//出队; } } } else if(minglin[0]=='O') { if(qd.empty()) t=1; else qd.pop(); } } if(t==1) printf("Error\n"); else { while(!sz.empty()) { cout<<sz.top()<<endl; sz.pop(); } } } return 0; }
refresh的停车场相关推荐
- sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- 数据结构实验之栈与队列十一:refresh的停车场
Description refresh最近发了一笔横财,开了一家停车场.由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多.当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优 ...
- java停车管理系统中期检查_java毕业设计_springboot框架的停车场收费管理系统
这是一个基于java的毕业设计项目,毕设课题为springboot框架的停车场收费管理系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jsp+s ...
- 【opencv】(13) 案例:停车场空余车位检测,附python完整代码
各位同学好,今天和大家分享一下如何使用Opencv完成停车场的车位检测,及空余车位计数,先放张图看效果. 红框代表该车位有车,绿框代表该车位空余,左上角记录有几个空余车位,黄色数字代表该车位内的像素个 ...
- Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
上一篇文章讲了SpringCloudConfig 集成Git仓库,配和 Eureka 注册中心一起使用,但是我们会发现,修改了Git仓库的配置后,需要重启服务,才可以得到最新的配置,这一篇我们尝试使用 ...
- 基于 JWT + Refresh Token 的用户认证实践
HTTP 是一个无状态的协议,一次请求结束后,下次在发送服务器就不知道这个请求是谁发来的了(同一个 IP 不代表同一个用户),在 Web 应用中,用户的认证和鉴权是非常重要的一环,实践中有多种可用方案 ...
- 在室内停车场使用道路标记语义进行厘米级建图和定位
标题:Mapping and Localization using Semantic Road Marking withCentimeter-level Accuracy in Indoor Park ...
- python中停车收费问题_使用CKRule实现停车场收费计算
1,收费公式 停车场都有其明确的收费标准,但不同地区地段都有不同的规定,这种规定的可变性比较多,如果要快速实现自动计算停车收费功能,那么使用CKRule是一个很好的选择.而一般的停车场计费都会使用类似 ...
- 实习二 栈、队列和递归算法设计 (题目:停车场管理 )
一.需求分析 1.每一组输入数据包括:汽车"到达"或"离去"信息.汽车牌照号码以 及到达或离去的时刻. 2.输出信息:若是车辆到达,则输出汽车在停车场内或便道上 ...
最新文章
- python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算
- 2021-7-26 pytorch深度学习框架学习
- C++Fenwick tree芬威克树的实现算法(附完整源码)
- CSS中颜色代码和单位
- API设计原则 - Qt官网的设计实践总结
- 【渝粤题库】广东开放大学 社会保障法 形成性考核
- 算法不归路之最大子序列(C++版)
- 会议通知|2019暑期全国高校Python数据分析与实训课程高级研修班
- ARM汇编EQU伪指令
- java移动元素_如何通过箭头键连续/平滑地移动元素?
- 增强的PolyBase SQL 2019-外部表SQL Server,目录视图和下推式
- 图像直方图及直方图均衡总结(一)经典方法(附matlab和opencv端算法实现)
- 商城购物系统软件测试,网上商城购物系统黑盒测试
- PM-项目管理(Project Management)
- jdk8特性 lambda表达式
- 射频和无线技术入门--传统技术--7
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(11)之支付管理及广告管理...
- 年轻人频繁辞职的主要原因是什么呢?
- 随着XAG加密圈影响力不断增强,吸引全球最大行情站点CMC收录瑞波基因XAG
- Amazon推新送货无人机Prime Air
热门文章
- macos系统自动安装mysql_macos系统安装mysql
- JAVAWEB入门之Servlet的注解配置
- java多线程打印helloworld,Java并发编程--多线程之HelloWorld
- binlog数据库不写入binlog_京东智联云MySQL数据库如何保障数据的可靠性?
- 数据结构与算法分析c++第四版_数据结构与算法 - 时空复杂度分析
- electron增加导航按钮_Electron发布6.0 Released版本
- ftm模块linux驱动,飞思卡尔k系列_ftm模块详解.doc
- jlabel 不能连续两次set_为什么有时连续多次setState只有一次生效?
- docker 端口映射 udp_Docker 制作一键安装的本地无污染 DNS 域名服务
- java子类怎么编译_java – 无法编译从基类实现抽象方法的子类