循环队列(0965)
描述
根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成,少用一个存储空间的方法区分队列的空和满。
input
输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。 第二行为操作次k,接下来k行为出队入队操作,每行各代表一次操作。入队用in表示,出队用out表示,如果是入队,则in隔一空格后为一整数,表示入队元素值。
output
输出完成所有入队出队操作后,一次性出队元素。用一个空格隔开。可以假定队在完成所有操作后不为空。
样例输入
样例输出
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)相关推荐
- 【C++】多线程(链式、循环队列)实现生产者消费者模式
生产者消费者模式: 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同 ...
- 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)
目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...
- 原生js循环展示dom_【前端面试】用一道题讲 js 的事件循环队列
昨天去面了滴滴,一口气面了三面,考了 promise 和事件循环.之前的猿辅导也考察了这些,几乎所有的大厂中厂都一定会考原生 js 的事件循环队列. 今天,我把昨天考察的原题拿出来分析一下. setT ...
- 【数据结构】顺序循环队列及其实现(C语言)
给定一个大小为MAXSIZE的数组储存一个队列,经过若干次的插入和删除以后,当队尾指针 rear = MAXSIZE 时,呈现队列满的状态,而事实上数组的前部可能还有空闲的位置.为了有效地利用空间,引 ...
- 【Java】 LeetCode 622. 设计循环队列 (有关实现循环队列的讲解)
题目: 设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为"环形缓冲器". 循环队列的一 ...
- 第3关:单链表循环队列
#ifndef queue__h #define queue__h#include <iostream>struct Node // 数据节点 {int data; // 数据类型Node ...
- 循环队列,定义循环队列长度为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< ...
- 【swjtu】数据结构实验3_基于循环队列的排队买票模拟程序
实验内容及要求: 编程建立循环队列存储结构,对排队买票过程进行模拟.要求程序在控制台屏幕上显示字符菜单: 1. 排队--输入新到达的买票人姓名,加入买票队列中: 2. 售票--排队队列中最前面的人购票 ...
- python循环队列_关于循环队列的一些讲解
前面讲到了队列的"假溢出",解决假溢出的办法就是后面满了,就再从头开始,也就是头尾相接的循环.我们把队列的这种头尾相接的顺序存储结构称为循环队列. 比如昨天的例子,rear可以改为 ...
最新文章
- C++中的封装、继承、多态
- 1、Linux汇编——初识汇编
- where is list binding done for Opportunity S2 view default 20 returns
- js小学生图区_推荐12个最好的 JavaScript 图形绘制库
- 导师要让你学会的“显规则”
- Java集合系列---List源码解析(ArrayList和LinkedList的区别)
- java socket资源释放_java基础--socket
- Python操作docx文档设置居中并创建表格
- 鸿蒙一号指纹锁,【诉说实情】火车头战狼一号家用防盗门指纹锁怎么样?新手必看内情...
- ORA-06413连接未打开的错误的原因和解决方法
- sql表格模型获取记录内容_SQL Server和BI –如何使用Excel记录表格模型
- bldc 原理 方波控制_正弦波驱动BLDC原理
- 安装pyspider报错:ERROR: Complete output from command python setup.py egg_info:...
- 中国34个省级行政区2000年-2021年逐月NDVI统计分析结果
- TikTok运营,TikTok数据分析
- 百度地图迁徙大数据_百度地图迁徙大数据:北上广深城内出行年后首次大幅增长...
- PS利用切片工具将一张大图裁剪成多个子图像并导出
- 基于Matlab的机器人学建模学习资料大整理
- ORA-31655,ORA-39154 Objects from foreign schemas have been removed from import
- OMAP3630 I2C device驱动
热门文章
- 使用Data Profile进行数据剖析
- 树分治树链剖分相关题目讨论
- 深入浅出设计模式——组合模式(Composite Pattern)
- Something haunts me in Python
- cocos2d menu菜单类
- 可扩展的SockBase设计和实现(1)
- STM32F407VG uCOS-II2.91 IAR工程 以及uCOS使用库编译的方法
- qhfl-6 购物车
- python3.6.5安装tensorflow_ubuntu下python3.6.5import tensorflow显示非法指令(核心已转储)
- matlab app designer制作软件_gif制作软件app