首页 > 其他分享 >队列——顺序存储

队列——顺序存储

时间:2023-09-03 10:12:06浏览次数:27  
标签:return 队列 SqQueue int MaxSize front 顺序存储 rear

#include<stdio.h>
#define MaxSize 10

//定义
typedef struct{
    int data[MaxSize];
    int rear,front;    //队尾指针rear指向队尾元素的下一个位置,队头指针front指向对头元素 
}SqQueue;

//初始化 
void InitQueue(SqQueue &Q){
    Q.front=Q.rear=0;
}

//判断队空
bool QueueEmpty(SqQueue Q){
    if(Q.front==Q.rear)
        return true;
    else 
        return false;
} 

//判断队满,(队列的最后一个位置不存储元素 )
bool QueueFull(SqQueue Q){
    if((Q.rear+1)%MaxSize==Q.front)
        return true;
    else
        return false;
} 

//入队
bool EnQueue(SqQueue &Q,int x){
    if((Q.rear+1)%MaxSize==Q.front)        //判断队满 
        return false;
        
    Q.data[Q.rear]=x;
    Q.rear=(Q.rear+1)%MaxSize;
    return true; 
} 

//出队
bool DeQueue(SqQueue &Q,int &x){
    if(Q.front==Q.rear)        //判断队空 
        return false;
        
    x=Q.data[Q.front];
    Q.front=(Q.front+1)%MaxSize;
    printf("元素%d出队\n",x);
    return true;
}

//读队头元素
int GetHead(SqQueue Q,int &x){
    if(Q.front==Q.rear)        //判断队空 
        return false;
        
    x=Q.data[Q.front];
    printf("队头元素为%d\n",x);
    return 0;
} 

int main(){
    int x;
    SqQueue Q;
    InitQueue(Q);
    EnQueue(Q,1);
    EnQueue(Q,2);
    GetHead(Q,x);
    DeQueue(Q,x);
    GetHead(Q,x);
    return 0;
}

 

标签:return,队列,SqQueue,int,MaxSize,front,顺序存储,rear
From: https://www.cnblogs.com/zyj3955/p/17674653.html

相关文章

  • rabbitmq死信队列
    死信的概念死信队列(DeadLetterQueue)是指当消息无法被消费者正常消费时,将这些无法消费的消息发送到专门的死信队列中,以便进行进一步的处理。这种处理方式通常被称为“死信处理”。应用场景:为了保证订单业务的消息数据不丢失,需要使用到RabbitMQ的死信队列机制,当消息消费发生......
  • portswigger——Response queue poisoning(响应队列中毒)_02
    响应队列中毒响应队列中毒是一种强大的请求走私攻击形式,它会导致前端服务器开始将响应从后端映射到错误的请求。实际上,这意味着同一前端/后端连接的所有用户都将获得针对其他人的持久响应。这是通过走私一个完整的请求来实现的,从而在前端服务器只期望一个响应时从后端引发两个响......
  • Redis队列Stream&Redis多线程详解(8)
    Redis目前最新版本为Redis-6.2.6,考虑到实际的情况,本次课程会以CentOS7下Redis-6.2.4版本进行讲解。下载地址:https://redis.io/download安装运行Redis很简单,在Linux下执行上面的4条命令即可,同时前面的课程已经有完整的视频讲解,请到网盘中下载观看,并自行安装。如安装过程出......
  • 数据结构与算法——栈和队列<也不过如此>
    ......
  • std模版库 队列、优先队列、双端队列
    queue为单端队列deque为双端队列priority_queue为优先队列includeincludepriority_queue<int,vector,less>//最大堆默认为对大堆也即和priority_queue等价priority_queue<int,vector,greater>//最小堆......
  • linux内核等待队列详解
    https://www.cnblogs.com/xinghuo123/p/13347964.html等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。1数据结构1.1等待队列头等待队列结构如下,因为每个等待队列都可以再中断时被修改,因此,在操作等待队列之前必......
  • RabbitMQ Stream类型队列
    RabbitMQ提供了三种类型的队列:ClassicQuorumStream官方文档对于流队列的描述是:高性能、可持久化、可复制、非破坏性消费、只追加写入的日志使用场景:一个队列将同一条消息分发给不同消费者可重复消费消息更高的性能存储大量消息而不影响性能更高的吞......
  • RabbitMQ快速入门--简单队列模型
             ......
  • 把深度行情推入queue队列的问题
    深度行情是一个对象,把对象推入queue队列,传的是引用,内部的值会变化。mddata=Queue()#回调中写入QueuedefOnRtnDepthMarketData(self,pDepthMarketData):mddata.put(pDepthMarketData)#另起线程死循环从Queue中拿数据defstoredata():i=0whileTrue:......
  • 深入研究消息队列01
    一、消息队列技术趋势 早年业界消息队列演进的主要推动力在于功能(如延迟消息、事务消息、顺序消息等)、场景(实时场景、大数据场景等)、分布式集群的支持等等。近几年,随着云原生架构和Serverless的普及,业界MQ主要向实时消息和流消息的融合架构、Serverless、Event、协议兼容等方......