熊浩辰
(熊浩辰)
1
1. 关于队列
题目ID:7650必做题100分
时间限制: 1000ms
空间限制: 256000kB
题目描述
队列是一种只允许队尾加入,队头删除的特殊的线性表。它满足所谓“先进先出”的原则。
请你实现一个队列并按照下列要求对其进行操作。
输入格式
第一行一个整数�n,表示共有�n次操作。接下来共�n行,每行描述了一次操作:
输出格式
输出一行,从头到尾输出最终的队列,数据间以单个空格隔开。
样例
Input 1
5 + 9 - + 10 + -20 -
Output 1
-20
样例解释
样例中,共有5次操作。首先是在队列尾加入元素9,然后删除队头元素,再加入元素10和-20,最后再删除队头元素。最终队列中只剩下-20。
数据范围
1≤�≤10001≤n≤1000,元素大小不超过���int
熊浩辰
(熊浩辰)
2
#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了