首页 > 其他分享 >循环队列基本操作

循环队列基本操作

时间:2024-12-26 17:55:42浏览次数:4  
标签:count 队列 MAX int circleQueue 循环 front 基本操作 rear

【问题描述】根据循环队列的类型定义,完成循环队列的基本操作。主函数中测试队列。

【输入形式】一个整数m,表示入队的元素个数

【输出形式】第一行:输出队头元素 第二行:队列中元素依次出队以空格间隔

【样例输入】5

【样例输出】

1

1 3 5 7 9

【样例输入】0

【样例输出】

empty!

【样例说明】

#include<iostream>
using namespace std;
#include<stdlib.h>
#define MAX 100
struct circleQueue
{
    int data[MAX];
    int front,rear;
    int count;
};
bool queueEmpty(circleQueue q)
{
    return q.count==0;
}
bool queueFull(circleQueue q)
{
    return q.count==MAX;
}
void initQueue(circleQueue &q)
{
    q.front=q.rear=0;
    q.count=0;
}
void enQueue(circleQueue &q,int e)
{
    if(queueFull(q))
        exit(0);
    q.data[q.rear]=e;
    q.rear=(q.rear+1)%MAX;
    q.count++;
}
int deQueue(circleQueue &q)
{
    if(queueEmpty(q))
        exit(0);
    int e=q.data[q.front];
    q.front=(q.front+1)%MAX;
    q.count--;
    return e;
}
int getFront(circleQueue q)
{
    if(queueEmpty(q))
    {
        cout<<"empty!";
        exit(0);
    }
    return q.data[q.front];
}
int main()
{
    int n;
    cin>>n;
    circleQueue(Q);
    initQueue(Q);
    for(int i=1;i<=n;i++)
    {
        enQueue(Q,i*2-1);
    }
    cout<<getFront(Q)<<endl;
    while(!queueEmpty(Q))
        cout<<deQueue(Q)<<' ';
    return 0;
}

标签:count,队列,MAX,int,circleQueue,循环,front,基本操作,rear
From: https://blog.csdn.net/2301_81394465/article/details/144691666

相关文章

  • 【数据结构练习题】栈与队列
    栈与队列选择题括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈设计循环队列面试题1.用队列实现栈。[OJ链接](https://leetcode.cn/problems/implement-stack-using-queues/solutions/)2.用栈实现队列。[OJ链接](https://leetcode.cn/problems/implement-queue-using-......
  • Java中使用redis作为消息队列
    Java中使用redis作为消息队列使用redis作为消息队列在Java中使用Redis作为消息队列,可以通过Redis的List​数据结构或者Pub/Sub​模式来实现。以下是一个简单的示例,展示了如何使用Redis的List​作为消息队列。1.使用Redis的List作为消息队列Redis的List​数据结构非常适合用来......
  • 熟悉Hive的基本操作
          ......
  • DataFrame的基本操作
    在Python中,使用pandas库操作DataFrame是非常常见的,pandas提供了丰富的函数和方法来处理表格数据。下面是一些常见的DataFrame操作示例:1.创建DataFrameimportpandasaspd#从字典创建DataFramedata={'Name':['Alice','Bob','Charlie','David'],�......
  • 循环神经网络(RNN)入门指南:从原理到实践
    目录1.循环神经网络的基本概念2.简单循环网络及其应用3.参数学习与优化4.基于门控的循环神经网络4.1长短期记忆网络(LSTM)4.1.1LSTM的核心组件:4.2 门控循环单元(GRU)4.3实际应用中的优化技巧4.3.1变体和改进4.3.2注意力机制的结合4.4实现细节和最佳实践4.4.......
  • 数据结构-栈和队列
    栈栈是一种后进先出(LIFO)的数据结构,就像一个只允许在一端进出的管道,最后进入栈的元素最先被取出,操作主要在栈顶进行,有入栈和出栈两种操作。例如,把盘子一个个往上叠放,取盘子时从最上面开始拿,这体现了栈的特点。相关代码实现创建入栈 出栈 遍历 判空 清栈 获......
  • 面试官:详细介绍一下Spring的循环依赖?
    一、什么是循环依赖Spring循环依赖是指:两个不同的Bean对象,相互成为各自的字段,当这两个Bean中的其中一个Bean进行依赖注入时,会陷入死循环,即循环依赖现象。代码例子:@ComponentpublicclassUserServiceA{  @Autowire  privateUserServiceBuserServiceB......
  • python多进程之间通讯,消息队列Queue
    代码:frommultiprocessingimportProcess,Queuedefproducer(q):myinfo="包子"q.put(myinfo)print(f"生产了{myinfo}")myinfo="饺子"q.put(myinfo)print(f"生产了{myinfo}\n")''......
  • 002. 队列安排(洛谷P1160)
    002.队列安排(洛谷P1160)题目描述一个学校里老师要将班上\(N\)个同学排成一列,同学被编号为\(1\simN\),他采取如下的方法:先将\(1\)号同学安排进队列,这时队列中只有他一个人;\(2\simN\)号同学依次入列,编号为\(i\)的同学入列方式为:老师指定编号为\(i\)的同学站在......
  • 403 循环同构判断
    //403循环同构判断.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/936给你两个字符串a,b,字符串均由小写字母组成,你需要判断这两个字符串是否循环同构。是的话输出Yes,否则输出No。输入格式第一行一......