数据结构-怀化学院期末题

循环队列

题目描述:

根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成。

输入:

输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。第二行为操作次k,接下来k行为出队入队操作,每行各代表一次操作。入队用in表示,出队用out表示,如果是入队,则in隔一空格后为一整数,表示入队元素值。

输出:

输出完成所有入队出队操作后,一次性出队元素。用一个空格隔开。可以假定队在完成所有操作后不为空。

输入样例:

4

7

in 1

in 2

in 5

in 6

out

out

in 8

输出样例:

5 8

代码:

cpp 复制代码
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
typedef pair<int,int> PII;
const int N = 1e5 + 10;
int n,k;
queue<int> q;
int main(){
	cin >> n >> k;
	while(k --){
		string c;
		int x;
		cin >> c;
		if(c == "in") {
			cin >> x;
			if(q.size() < n-1) q.push(x);
		}
		if(c == "out")
			q.pop();
	}	
	while(q.size()){
		cout << q.front() << ' ';
		q.pop();
	} 
	return 0;
}
相关推荐
漫随流水9 分钟前
leetcode算法(20.有效的括号)
数据结构·算法·leetcode
tobias.b1 小时前
408真题解析-2009-1-数据结构-队列-进出规则-应用
数据结构·考研·408真题
小丁努力不焦虑2 小时前
算法期末总结题
数据结构·算法
嵌入式进阶行者2 小时前
【算法】从数组中选取两个符合一定条件的数的算法与实例:华为OD机考双机位A卷 - 跳房子I
数据结构·c++·算法·链表
im_AMBER2 小时前
Leetcode 94 合并零之间的节点
数据结构·c++·笔记·学习·算法·leetcode
tobias.b2 小时前
408真题解析-2009-3-数据结构-树-遍历方式
数据结构·计算机考研·408真题
WaWaJie_Ngen2 小时前
【操作系统】第四章---存储器管理
数据结构·算法
k***92162 小时前
如何在C++的STL中巧妙运用std::find实现高效查找
java·数据结构·c++
im_AMBER3 小时前
数据结构 16 【复习】静态查找表 | 二叉排序树的查找 | AVL树的旋转
数据结构·笔记·学习·算法
tobias.b3 小时前
408真题解析-2009-2-数据结构-栈-队列-进出规则
数据结构·408考研·真题解析