zoukankan      html  css  js  c++  java
  • 循环队列(0965)

    描述

    根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定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  
  • 相关阅读:
    896. Monotonic Array单调数组
    865. Smallest Subtree with all the Deepest Nodes 有最深节点的最小子树
    489. Robot Room Cleaner扫地机器人
    JavaFX
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
  • 原文地址:https://www.cnblogs.com/swust-wangyf/p/6725951.html
Copyright © 2011-2022 走看看