首页 > 其他分享 >2023-03-31-顺序队列SqQueue的基本操作

2023-03-31-顺序队列SqQueue的基本操作

时间:2023-03-31 19:24:30浏览次数:39  
标签:03 return int 31 front 基本操作 false SqQueue rear

//基本顺序队列

#include <stdio.h>
#include <stdbool.h>

#define MAXSIZE 50

typedef struct
{
    int data[MAXSIZE];
    int front,rear;
}SqQueue;

void initSqQueue(SqQueue *Q)//进行队的初始化
{
    Q->front=0;
    Q->rear=0;
}

bool isEmpty(SqQueue *Q)//判断队伍是否为空
{
    if(Q->front==Q->rear)
    {
        return true;
    }
    else
    {
        return false;
    }
}

bool EnQueue(SqQueue *Q,int e)//进队
{
    if(Q->rear==MAXSIZE)//判断队是否已满,rear是最后一个元素的位置+1
    {
        return false;
    }
    else
    {
        Q->data[Q->rear]=e;//先进行赋值操作
        Q->rear++;//再进行++
        return true;
    }
}

bool DeQueue(SqQueue *Q,int *e)//出队操作,将值赋给e
{
    if(isEmpty(Q))
    {
        return false;
    }
    else
    {
        *e=Q->data[Q->front];
        Q->front++;//front上移
        return true;
    }
}

int QueueLength(SqQueue Q)//求队伍长度
{
    return (Q.rear-Q.front);
}

int main()
{
    SqQueue Q;
    initSqQueue(&Q);
    int x;
    for(int i=0;i<5;i++)
    {
        scanf("%d",&x);
        EnQueue(&Q,x);
    }

    int *e;
    int a=0;
    e=&a;

    DeQueue(&Q,e);
    printf("DeQueue_value: %d\n",*e);
    printf("Q.front: %d Q.rear: %d\n",Q.front,Q.rear);
    printf("First elem: %d\n",Q.data[Q.front]);
    printf("QueueLength: %d\n",QueueLength(Q));
    return 0;
}

 

标签:03,return,int,31,front,基本操作,false,SqQueue,rear
From: https://www.cnblogs.com/ryuichi-ssk/p/17277259.html

相关文章

  • 3.31每日总结
     今天学习了1h。  非静态方法在不同类之间调用其他方法 在不同类之间,非静态方法需要通过对象才能调用非静态方法。 非静态方法既可以通过对象调用静态方法又可以通过类名直接调用(由于对象的调用方式属于非静态调用方式,所以建议使用类名直接调用静态方法)packagemain;p......
  • Codeforces Gym 103931F - Forest of Magic(时间轴分块+线段树合并)
    一个巨烦的时间轴分块做法,有点类似于P2137Gty的妹子树先考虑静态的情况。看上去就一脸线段树合并对吧?一次修改的操作对一个点\(x\)贡献可以写成\(k·dep_x+b\)的形式,开两棵线段树合并维护一次项和零次项系数即可。由于静态问题可做,因此考虑时间轴分块。设阈值\(B\),每\(B......
  • 2023年3月31日(软件工程日报)人月神话读书笔记3内容
    第8章:胸有成竹软件工作量是根据规模成指数型增长的,指数大约是1.5,即:工作量=常数×指令的数量1.5工作量=常数\times指令的数量^{1.5}工作量=常数×指令的数量1.5实践是最好地老师实践是最好地老师,但智者还能从其他地方有收获。第9章削足适履这一章讨论了内存......
  • SB-RocketMQ-Provider-Consumer20230331
     一、生产者1、pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.rocketmq</groupId>......
  • 20230329
    D题-三天前(ThreeDaysAgo)题意给你一行仅由数字(0~9)构成的串,计算满足“条件”的子串的数量。条件是:该数字串可以拆分成两个「由相同数量的对应数字」构成的的数字串。串的最大长度为5*105思路如何判断一个数字串是符合“条件”的呢?举几个例子:07211270符合,00772211符......
  • 2023年3月31日
    计划看crm项目,看一个功能到底怎么实现,继续梳理巩固ssm框架,熟练掌握继续修改页面,并且熟悉现有项目,做到极其熟悉,尝试开发审核和mock功能回顾之前几天的学习记录,熟悉各个知识点,包括Java,JavaScript,mybatis,maven,servlet看看java书籍执行09点19分  开始10点52分  回顾......
  • P3190 [HNOI2007]神奇游乐园
    P3190[HNOI2007]神奇游乐园用\(unordered\_map\)有个坑,写在了下面这个博客https://www.luogu.com.cn/blog/zhouzhuo/gei-yong-unorderedmap-di-hou-ren-ti-gong-dai-ma再贴一下代码吧点击查看代码#include<bits/stdc++.h>#include<unordered_map>#defineintlonglong......
  • 小技巧003-伪并行重构流场
    小技巧003-伪并行重构流场OpenFOAM的reconstructPar是单核程序,对于较大的算例重构流场时间过长,而reconstrctPar程序可以指定重构某一段时间的流场:reconstructPar-timestart:end可以将所需要重构的流场时间范围分成不同的小段,分别重构不同时间段的流场,实现reconstrctPar的伪......
  • 202031607332-阿卜杜热合曼·麦麦提艾萨 实验一 软件工程准备—对课程的初步认识
    项目内容班级博客链接2023年春软件工程(2020级计算机科学与技术本次作业要求链接实验一软件工程准备我的课程学习目标1.学习博客园软件开发者学习社区使用技巧和经验2.了解Github的基本操作本次作业在哪些方面帮我实现学习目标学习了博客园使用技巧,Github的......
  • Arduino 外接 DS3132 读数为2165/165/165问题解决
    即使SCL/SDA不接线,DS3132也会返回,这个值为2165/165/165因此问题的来源为接线不牢靠。接线牢靠的标准:RTC模块(ZS-042)上的PWR灯应该常亮,并且亮度很大(我一开始接线,PWR亮度小,而且闪烁)RTC的SCL接Arduino的A4,SDA接Arduino的A5.The165indicatesthatthedatalinefor......