题目描述
模拟队列
JAVA 代码
import java.util.*;
import java.io.*;
class Main{
static final int N = 100010;
static int[] q = new int[N];
static int hh=0, tt=-1;
public static void main(String args[]) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(in.readLine());
while(n-->0){
String [] s = in.readLine().split(" ");
String c = s[0];
if(c.equals("push")){
//队尾自增后 新增元素
int x = Integer.parseInt(s[1]);
q[++tt] = x;
}else if(c.equals("query")){
//查询队头
System.out.println(q[hh]);
}else if(c.equals("pop")){
//队头自增, 则删除了队头元素
//虽然内存空间占用了.
hh++;
}else if(c.equals("empty")){
//队尾 - 队头 >=0, 要等于是因为队尾从-1开始的.
if(tt-hh >= 0) System.out.println("NO");
else System.out.println("YES");
}
}
}
}