题目描述
给定一个初始为空的队(队存储空间长度为10)和一系列进队、
出队操作,请编写程序输出经过这些操作后队中的元素。
输入格式:
输入第1行为1个正整数n,表示操作个数;
第2行为给出的n个整数,非0元素表示进队,且此非0值即为进队 元素,0元素表示出队。
输出格式:
第一行按出队顺序输出所有出队元素,以一个空格隔开;
如果队列空时做出队操作,则输出"-999"。如果队满时做进队操作会输出"999"。
代码详解
代码
#include <iostream>
#include <vector>
using namespace std;
void printVec(vector<int> vec) {
for (int i = 0; i < vec.size(); i++)
{
cout << vec[i] << ",";
}
cout << endl;
}
int main()
{
int a[] = { 3,1,2,0,0,-1,0,0,0,4,5,0 };
int len = 12;
vector<int> vec;
//存放 出队列的元素
vector<int> outVec;
for (int i = 0; i < len; i++)
{
if (a[i] != 0) {
if (vec.size() == 10) {
outVec.push_back(999);
}
else {
//入队列
vec.push_back(a[i]);
}
}
else {
if (vec.size() == 0) {
outVec.push_back(-999);
}
else {
//出队列
outVec.push_back(vec[0]);
vec.erase(vec.begin());
}
}
}
printVec(outVec);
}