http://acm.hdu.edu.cn/webcontest/contest_show.php?cid=13259
ACboy needs your help again!
Problem Description
ACboy was kidnapped!!
he miss his mother very much and is very scare now.You can’t image how dark the room he was put into is, so poor ?.
As a smart ACMer, you want to get ACboy out of the monster’s labyrinth.But when you arrive at the gate of the maze, the monste say :" I have heard that you are very clever, but if can’t solve my problems, you will die with ACboy."
The problems of the monster is shown on the wall:
Each problem’s first line is a integer N(the number of commands), and a word “FIFO” or “FILO”.(you are very happy because you know “FIFO” stands for “First In First Out”, and “FILO” means “First In Last Out”).
and the following N lines, each line is “IN M” or “OUT”, (M represent a integer).
and the answer of a problem is a passowrd of a door, so if you want to rescue ACboy, answer the problem carefully!

Input
The input contains multiple test cases. The first line has one integer,represent the number oftest cases. And the input of each subproblem are described above.

Output
For each command “OUT”, you should output a integer depend on the word is “FIFO” or “FILO”, or a word “None” if you don’t have any integer.

分析:FIFO用队列,FILO用栈

Sample Input

4
4 FIFO
IN 1
IN 2
OUT
OUT
4 FILO
IN 1
IN 2
OUT
OUT
5 FIFO
IN 1
IN 2
OUT
OUT
OUT
5 FILO
IN 1
IN 2
OUT
IN 3
OUT

Sample Output

1
2
2
1
1
2
None
2
3

代码如下:

#include <iostream>
#include<malloc.h>
#include<cstdio>
#define max 1000000
using namespace std;
//队列
typedef struct
{int data[max];int front,rear;        //队列两个指针,分别指队首,队尾。
} SqQueue;
void InitQueue(SqQueue*&q)
{q=(SqQueue*)malloc(sizeof(SqQueue));q->front=q->rear=-1;
}
void enQueue(SqQueue*&q,int m)
{string str;int t,i;for(i=0; i<m; i++){cin>>str;if(str.compare("IN")==0){cin>>t;q->rear++;q->data[q->rear]=t;}if(str.compare("OUT")==0){if(q->front==q->rear){cout<<"None"<<endl;continue;}else{q->front++;cout<<q->data[q->front]<<endl;}}}
}
//栈
typedef struct
{int data[max];int top;            //一个指针,只能从尾部读取
} SqStack;
void InitStack(SqStack*&s)
{s=(SqStack*)malloc(sizeof(SqStack));s->top=-1;
}
void push(SqStack*&s,int m)
{string str;int i,t;for(i=0; i<m; i++){cin>>str;if(str.compare("IN")==0){cin>>t;s->top++;s->data[s->top]=t;}else{if(str.compare("OUT")==0){if(s->top==-1){cout<<"None"<<endl;continue;}else{cout<<s->data[s->top]<<endl;s->top--;}}}}
}
int main()
{string str;int n,m;cin>>n;while(n--){cin>>m;cin>>str;if(str.compare("FIFO")==0){SqQueue *q;InitQueue(q);enQueue(q,m);}if(str.compare("FILO")==0){SqStack*s;InitStack(s);push(s,m);}}return 0;
}

FIFO+FILO(手写栈、队列)相关推荐

  1. C语言手写栈、手写计算器

    C语言实现表达式求值 文章结构 C语言手写栈Struct Stack 后缀表达式求值 中缀表达式转后缀表达式 文章结构 本文尝试通过纯C语言写一个计算器,在Visual Studio和VScode运行 ...

  2. 手写栈和队列实现计算器

    要求 字符串读入,含义+,-,*,/,(,) 数据含小数 思路 字符串截取读入(数字位数可能不为一位) template简化代码复杂度 enum增加代码可读性 class 抽象出栈  ~~~~name ...

  3. java 手写阻塞队列_Java阻塞队列的实现

    阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列 ...

  4. 面试官系统精讲Java源码及大厂真题 - 26 惊叹面试官:由浅入深手写队列

    26 惊叹面试官:由浅入深手写队列 人生的价值,并不是用时间,而是用深度去衡量的. 引导语 现在不少大厂面试的时候会要求手写代码,我曾经看过一个大厂面试时,要求在线写代码,题目就是:在不使用 Java ...

  5. 队列的基本操作_如果让你手写个栈和队列,你还会写吗?||CSDN博客精选

    来源:华为云云享专家倪升武 昨天跟一个CSDN上的朋友聊天,他说现在如果让他自己手写一个栈或者队列,估计都要写蛮久的,平时虽然都在用,但是都是别人封装好的集合. 确实,经典的数据结构,包括排序算法,虽 ...

  6. 如果让你手写个栈和队列,你还会写吗?

    昨天跟一个CSDN上的朋友聊天,他说现在如果让他自己手写一个栈或者队列,估计都要写蛮久的,平时虽然都在用,但是都是别人封装好的集合. 确实,经典的数据结构,包括排序算法,虽然我们平时不用手写了,但是这 ...

  7. 金九银十!阿里P8手写的内部Java核心开发成长手册,涵盖p5-p8技术栈,秋招必看!

    前言 程序员的年龄一直是大家讨论的热门话题,本人最近和不少小公司的程序员打交道.经过和他们的深入交流,我感受到了不少小公司程序员的现状,由此深深地感叹,可能真有不少小公司的程序员未必能干到30岁,甚至 ...

  8. 全栈AI工程师指南,DIY一个识别手写数字的web应用

    作者 | shadow chi 本文经授权转载自 无界社区mixlab(ID:mix-lab) 网上大量教程都是教如何训练模型, 往往我们只学会了训练模型, 而实际应用的环节是缺失的. def AIF ...

  9. (70)FPGA资源优化有哪些方法?手写FIFO代替BRAM

    1.1 FPGA资源优化有哪些方法?手写FIFO代替BRAM 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA资源优化有哪些方法?手写FIFO代替BRAM: 5) ...

最新文章

  1. 实时传输协议(RTP)
  2. QN8027性能调试
  3. 使用keras的cifar10.load_data()总是会自动下载问题的解决
  4. 【CV】多目标跟踪:监控领域你必须要了解的算法
  5. react java编程_快速上手React编程 PDF 下载
  6. dbf文件怎么创建_ThinkPHP6开发博客实战入门(三),创建admin后台入口
  7. 软件设计师 - 算法思想
  8. 构建高性能ASP.NET站点之二 优化HTTP请求(前端)
  9. 确保Kubernetes环境安全的3种最佳实践
  10. php preg_replace html,php – 忽略preg_replace中的html标签
  11. 操作属性之修改样式属性
  12. jdbc取款怎样限制条件_京东张亮:我们是怎样打造一款分布式数据库的
  13. 服务器状态码502什么意思,Http状态码502问题复盘
  14. 五、Python复习教程(重点)-爬虫框架实战
  15. 武汉理工大学计算机专业课程表,武汉理工大学2014年春季第一周课表.xls
  16. IOUtils快速进行内容复制与常用方法
  17. 详谈 import 路径
  18. hp服务器装2012系统还原,用HP GEN8+WIN2012+Hyper V+黑群晖5.2组建家庭NAS中心 篇四:WIN 2012 安装 存储池调试及修复...
  19. PostgreSQL忘记密码
  20. html中鱼眼效果,视频鱼眼效果制作 视频鱼眼效果制作方法

热门文章

  1. 抽象数据类型:复数COMPLEX
  2. Python爬虫分析微博热搜关键词(代码已过时,仅供参考)
  3. oracle服务器io,ORACLE数据库服务器IO高的分析方案和案例探讨
  4. C语言的三种整型数据类型:int、short int和long int
  5. git 常用简化软件开发和发布流程(二)
  6. 操作无法完成.键入的打印机名不正确,或者指定的打印机没有连接到服务器上 !...
  7. 数据结构-栈--表达式
  8. 基于jsDelivr+GitHub的免费CDN
  9. Linux如何查找文件内存,Linux之内存检查
  10. 英语(2)-- 实用口语100句