Help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1. 关于队列

题目ID:7650必做题100分

时间限制: 1000ms

空间限制: 256000kB

题目描述

队列是一种只允许队尾加入,队头删除的特殊的线性表。它满足所谓“先进先出”的原则。

请你实现一个队列并按照下列要求对其进行操作。

输入格式

第一行一个整数�n,表示共有�n次操作。接下来共�n行,每行描述了一次操作:

  • x 表示将整数x入队;
  • 表示将队首元素出队。

输出格式

输出一行,从头到尾输出最终的队列,数据间以单个空格隔开。

样例

Input 1

5 + 9 - + 10 + -20 -

Output 1

-20

样例解释

样例中,共有5次操作。首先是在队列尾加入元素9,然后删除队头元素,再加入元素10和-20,最后再删除队头元素。最终队列中只剩下-20。

数据范围

1≤�≤10001≤n≤1000,元素大小不超过���int

#include<bits/stdc++.h>
using namespace std;
long long a[10005]={0};
int tail=0,head=0;
void push(int x){
  tail++;
  a[tail]=x;
}
void pop(){
  head++;
}
int Head(){
  return a[head+1];
}
bool empty(){
  return head==tail;
}
int Tail(){
  return a[tail];
}
int main(){
  int n;
  cin>>n;
  char sb;
  while(n--){
    cin>>sb;
    if(sb=='+'){
      int x;
      cin>>x;
      push(x);
    }else {
      pop();
    }
  }
  while(head<tail){
    cout<<Head()<<' ';
   pop();
  }
  for(int i=head+1;i<tail;i++){
    cout<<a[i]<<' ';
  }
}
A了