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

7-循环队列的基本操作

时间:2024-07-12 23:09:07浏览次数:9  
标签:return 队列 SqQueue MaxSize 循环 front 基本操作 rear

顺序队列的操作

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

typedef int ElemType;

#define  MaxSize 50
/*顺序队列的类型定义*/
typedef struct  {
    /*用一维数组存放队列元素*/
    ElemType  data[MaxSize];
    /*队头指针*/
    int front;
    /*队尾指针*/
    int rear;

} SqQueue;

/*初始化顺序队列*/
void InitQueue(SqQueue *Q){
    Q->rear=Q->front=0;
}

/*判断顺序队列是否为空*/
bool isEmpty(SqQueue Q){
    return  Q.front=Q.rear;
}
/*入队*/
bool EnQueue(SqQueue *Q,ElemType X){
    /*队满*/
    if((Q->rear+1)%MaxSize ==Q->front){
        return  false;
    }
    /*先入队*/
    Q->data[Q->rear]=X;
    /*队尾指针 再 +1*/
    Q->rear=(Q->rear+1)% MaxSize;
    return  true;
}
/*出队*/
bool DeQueue(SqQueue *Q,ElemType *X){
    /*对空*/
    if(Q->rear == Q->front){
        return  false;
    }
    /*先获取队头元素*/
    *X=Q->data[Q->front];
    /*队头指针+1*/
    Q->front=(Q->front+1)% MaxSize;
    return  true;
}

int main() {

    printf("@@@@");

    return 0;
}

标签:return,队列,SqQueue,MaxSize,循环,front,基本操作,rear
From: https://www.cnblogs.com/chengqiang521/p/18299522

相关文章

  • C语言-分支与循环(1)
    目录1、if语句1.1if1.2else1.3分支中包含多条语句1.4嵌套if1.5悬空else问题(多个if和一个else对应关系)2、switch语句2.1switch语句中的break2.2switch语句中的default2.3switch语句中的case和default的顺序问题3、关系操作符4、条件操作符4.1什么是条件......
  • 数据结构(Java):队列&集合Queue&力扣面试OJ题
    1、队列1.1队列的概念队列是一个特殊的线性表,只允许在一端(队尾)进行插入数据操作,在另一端(对头)进行删除数据。队列具有先进先出FIFO(FirstInFirstOut)的特性。入队:数据只能从队尾进队列    出队:数据只能从对头出队列即:队尾进队头出我们可以把队列想象为一个排队......
  • 易优cms网站for功能:数据/记录循环输出标签(注:类似与volist、foreach标签)-Eyoucms
    【基础用法】名称:for功能:数据/记录循环输出标签(注:类似与volist、foreach标签)语法:{eyou:forstart='开始值'end='结束值'}{$i}{/eyou:for}php解析后的代码是:for($i=1;$i<100;$i+=1){echo$i;}参数:start=''开始值end=''结束值comparison=''比较操作符,默认是小于......
  • 易优cms网站volist功能:数据/记录循环输出标签-Eyoucms
    【基础用法】名称:volist功能:数据/记录循环输出标签语法:{eyou:channeltype='top'}      {eyou:volistname='$field.children'id='field1'}<ahref='{$field1.typeurl}'>{$field1.typename}</a>{/eyou:volist}{/eyou:channel}文件:无参数:......
  • 「代码随想录算法训练营」第九天 | 栈与队列 part1
    232.用栈实现队列题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/题目难度:简单文章讲解:https://programmercarl.com/0232.用栈实现队列.html视频讲解:https://www.bilibili.com/video/BV1nY4y1w7VC题目状态:看视频讲解后通过思路:通过两个栈来实现队......
  • 易优cms网站foreach功能:数据/记录循环输出标签(注:类似与volist标签,只是更加简单,没有太
    【基础用法】名称:foreach功能:数据/记录循环输出标签(注:类似与volist标签,只是更加简单,没有太多额外的属性。)语法:{eyou:channeltype='top'}{eyou:foreachname='$field.children'item='field1'}<ahref='{$field1.typeurl}'>{$field1.typename}</a>{/eyou:......
  • 代码随想录算法训练营第10天 | 复习队列和栈
    2024年7月12日题232.用栈实现队列两边倒即可,要出队列就倒到右边去,然后再回来。classMyQueue{Stack<Integer>s1;Stack<Integer>s2;intsize;publicMyQueue(){s1=newStack<>();s2=newStack<>();size=0;}......
  • 【AI前沿】深度学习基础:循环神经网络(RNN)
    文章目录......
  • Day9(栈与队列) | **232.用栈实现队列** **225. 用队列实现栈** **20. 有效的括号**
    232.用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanempty()如果队列为......
  • 队列+二叉树广度优先
    题目出自力扣-n叉树的层序遍历我是原始人,递归写出一道题就只有递归思路,开始的想法是写深搜函数,传一个随着层数递增的int参数q,节点空就return,否则遍历所有节点,每个子节点又以q+1为层数递归,然后收集每一层的val即可代码;/*//DefinitionforaNode.classNode{public......