import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        String[] arr = num.split(" ");
        CircleQueue que = new CircleQueue(Integer.valueOf(arr[0])+1);
        while(sc.hasNextLine()){
            String[] input = sc.nextLine().split(" ");
            if(input[0].equals("push"))
                que.push(Integer.valueOf(input[1]));
            else if(input[0].equals("front"))
               que.front();
            else if(input[0].equals("pop"))
               que.pop();
        }
    }
    
}
class CircleQueue{
    private int maxSize;
    private int front;
    private int rear;
    private int[] circle;
    public CircleQueue(int size){
        maxSize = size;
        circle = new int[maxSize];
        front = 0;
        rear = 0;
    }
    public void push(int num){
        if((rear+1)%maxSize==front){
            System.out.println("full");
        }else{
            circle[rear] = num;
            rear = (rear+1)%maxSize;
        }
            
    }
    public void front(){
        if(rear==front)
            System.out.println("empty");
        else
            System.out.println(circle[front]);
        
    }
    public void pop(){
        if(rear == front)
            System.out.println("empty");
        else{  
            System.out.println(circle[front]);
            front = (front+1)%maxSize;
        }
    }
}

注意: 1.在源文件中规定只有一个类为public类型,且与文件名相同。 因为每个文件(编译单元)只有一个public类,表示每个文件都有单一的公共接口,通过public来表现。如果有多个以上就会报错。 2.循环队列往往牺牲一个单元来区分队空和队满。 队满条件:(Q.rear+1)%MaxSize==Q.front 队空条件:Q.rear==Q.front 相比于队列,循环队列的优点是不会出现假队满(假溢出)的情况。