描述

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

input

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

output

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

样例输入

4
7
in 1
in 2
in 5
in 6
out
out
in 8

样例输出

5 8

这道题如题所示,建立一个循环队列就做了

代码如下

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4
 5 int n;
 6 typedef struct queue{
 7     int data[50];
 8     int head,tail;
 9 }queue,*Queue;
10
11 void init(Queue queue){
12     queue->head=queue->tail=0;
13 }
14 bool isEmpty(Queue queue){
15     return queue->head==queue->tail;
16 }
17 bool isFull(Queue queue){
18     return (queue->tail+1)%n==queue->head;
19 }
20 void in(Queue queue){
21     int num;cin>>num;
22     if(isFull(queue))return;
23     queue->data[queue->tail++]=num;
24     queue->tail=queue->tail%n;
25 }
26 int out(Queue queue,int &e){
27     if(queue->head==queue->tail)return 0;
28     e=queue->data[queue->head];
29     queue->head=(queue->head+1)%n;
30     return 1;
31 }
32
33 int main(){
34     int t;
35     queue queue;
36     init(&queue);
37     cin>>n>>t;
38     string str;
39     int num;
40     int e=1;
41     for(int i=0;i<t;i++){
42         cin>>str;
43         if(str=="in"){
44             in(&queue);
45         }
46         else if(str=="out")num=out(&queue,e);
47     }
48     while(out(&queue,e)){
49         cout<<e<<" ";
50     }
51     return 0;
52 }
53
54  

转载于:https://www.cnblogs.com/swust-wangyf/p/6725951.html

循环队列(0965)相关推荐

  1. 【C++】多线程(链式、循环队列)实现生产者消费者模式

    生产者消费者模式:         生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同 ...

  2. 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)

    目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...

  3. 原生js循环展示dom_【前端面试】用一道题讲 js 的事件循环队列

    昨天去面了滴滴,一口气面了三面,考了 promise 和事件循环.之前的猿辅导也考察了这些,几乎所有的大厂中厂都一定会考原生 js 的事件循环队列. 今天,我把昨天考察的原题拿出来分析一下. setT ...

  4. 【数据结构】顺序循环队列及其实现(C语言)

    给定一个大小为MAXSIZE的数组储存一个队列,经过若干次的插入和删除以后,当队尾指针 rear = MAXSIZE 时,呈现队列满的状态,而事实上数组的前部可能还有空闲的位置.为了有效地利用空间,引 ...

  5. 【Java】 LeetCode 622. 设计循环队列 (有关实现循环队列的讲解)

    题目: 设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为"环形缓冲器". 循环队列的一 ...

  6. 第3关:单链表循环队列

    #ifndef queue__h #define queue__h#include <iostream>struct Node // 数据节点 {int data; // 数据类型Node ...

  7. 循环队列,定义循环队列长度为10,编写初始化队列、入队、出队、求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能。

    循环队列,定义循环队列长度为10,编写初始化队列.入队.出队.求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能. #include< ...

  8. 【swjtu】数据结构实验3_基于循环队列的排队买票模拟程序

    实验内容及要求: 编程建立循环队列存储结构,对排队买票过程进行模拟.要求程序在控制台屏幕上显示字符菜单: 1. 排队--输入新到达的买票人姓名,加入买票队列中: 2. 售票--排队队列中最前面的人购票 ...

  9. python循环队列_关于循环队列的一些讲解

    前面讲到了队列的"假溢出",解决假溢出的办法就是后面满了,就再从头开始,也就是头尾相接的循环.我们把队列的这种头尾相接的顺序存储结构称为循环队列. 比如昨天的例子,rear可以改为 ...

最新文章

  1. C++中的封装、继承、多态
  2. 1、Linux汇编——初识汇编
  3. where is list binding done for Opportunity S2 view default 20 returns
  4. js小学生图区_推荐12个最好的 JavaScript 图形绘制库
  5. 导师要让你学会的“显规则”
  6. Java集合系列---List源码解析(ArrayList和LinkedList的区别)
  7. java socket资源释放_java基础--socket
  8. Python操作docx文档设置居中并创建表格
  9. 鸿蒙一号指纹锁,【诉说实情】火车头战狼一号家用防盗门指纹锁怎么样?新手必看内情...
  10. ORA-06413连接未打开的错误的原因和解决方法
  11. sql表格模型获取记录内容_SQL Server和BI –如何使用Excel记录表格模型
  12. bldc 原理 方波控制_正弦波驱动BLDC原理
  13. 安装pyspider报错:ERROR: Complete output from command python setup.py egg_info:...
  14. 中国34个省级行政区2000年-2021年逐月NDVI统计分析结果
  15. TikTok运营,TikTok数据分析
  16. 百度地图迁徙大数据_百度地图迁徙大数据:北上广深城内出行年后首次大幅增长...
  17. PS利用切片工具将一张大图裁剪成多个子图像并导出
  18. 基于Matlab的机器人学建模学习资料大整理
  19. ORA-31655,ORA-39154 Objects from foreign schemas have been removed from import
  20. OMAP3630 I2C device驱动

热门文章

  1. 使用Data Profile进行数据剖析
  2. 树分治树链剖分相关题目讨论
  3. 深入浅出设计模式——组合模式(Composite Pattern)
  4. Something haunts me in Python
  5. cocos2d menu菜单类
  6. 可扩展的SockBase设计和实现(1)
  7. STM32F407VG uCOS-II2.91 IAR工程 以及uCOS使用库编译的方法
  8. qhfl-6 购物车
  9. python3.6.5安装tensorflow_ubuntu下python3.6.5import tensorflow显示非法指令(核心已转储)
  10. matlab app designer制作软件_gif制作软件app