解题思路

  1. 使用队列来存储数据。
  2. 对于 push 操作,将元素加入队尾。
  3. 对于 pop 操作,检查队列是否为空:
    • 如果为空,输出 "error"。
    • 否则,输出队首元素并将其出队。
  4. 对于 front 操作,检查队列是否为空:
    • 如果为空,输出 "error"。
    • 否则,输出队首元素。

代码

#include <iostream>
#include <queue>
#include <string>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    queue<int> q;
    string op;
    
    while(n--) {
        cin >> op;
        if(op == "push") {
            int x;
            cin >> x;
            q.push(x);
        }
        else if(op == "pop") {
            if(q.empty()) {
                cout << "error\n";
            } else {
                cout << q.front() << "\n";
                q.pop();
            }
        }
        else { // front
            if(q.empty()) {
                cout << "error\n";
            } else {
                cout << q.front() << "\n";
            }
        }
    }
    return 0;
}
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        Queue<Integer> q = new LinkedList<>();
        
        for(int i = 0; i < n; i++) {
            String op = sc.next();
            if(op.equals("push")) {
                int x = sc.nextInt();
                q.offer(x);
            }
            else if(op.equals("pop")) {
                if(q.isEmpty()) {
                    System.out.println("error");
                } else {
                    System.out.println(q.poll());
                }
            }
            else { // front
                if(q.isEmpty()) {
                    System.out.println("error");
                } else {
                    System.out.println(q.peek());
                }
            }
        }
    }
}
from collections import deque
import sys

input = sys.stdin.readline

n = int(input())
q = deque()

for _ in range(n):
    op = input().strip()
    if op.startswith("push"):
        _, x = op.split()
        q.append(int(x))
    elif op == "pop":
        if not q:
            print("error")
        else:
            print(q.popleft())
    elif op == "front":
        if not q:
            print("error")
        else:
            print(q[0])

算法及复杂度分析

  • 算法:队列的基本操作
  • 时间复杂度: 对于每个操作。
  • 空间复杂度:,其中 是操作次数。