美文网首页数据结构和算法分析
2018-10-11 数据结构学习---循环队列的实现

2018-10-11 数据结构学习---循环队列的实现

作者: 回不去的温柔 | 来源:发表于2018-10-11 09:57 被阅读2次
  • 循环队列是顺序队的一种,意在解决队首和队尾指针同同时等于MAXSIZE-1的时候,会发声假上溢的情况,利用循环队列解决了这个问题

  • 判断是否队空,则看rear=front==0

  • 判断是否队满,则看(rear+1)%MAXSIZE==front

/*
 * 学习时间:2018-10-11
 * 学习内容:数据结构之循环队列的实现
 * 学习人:田超
 * QQ:770925351
 * Email:770925351@qq.com
 * 开发环境:Ubuntu 16.04 + CLion
 * */
#include <stdio.h>
#define MAXSIZE 10
#define TRUE 1
#define ERROR 0

typedef struct SqQueue
{
    int front;                  //队首
    int rear;                   //队尾
    int data[MAXSIZE];          //数据域
}SqQueue;

void initQueue(SqQueue &qu)     //初始化队
{
    qu.front=qu.rear=0;         //初始化队首
}

int isQueueEmpty(SqQueue qu)    //判断队是否为空
{
    if(qu.front==qu.rear)
        return TRUE;
    else
        return ERROR;
}

int isQueueFull(SqQueue qu)     //判断队是否已满
{
    if((qu.rear+1)%MAXSIZE==qu.front)
        return TRUE;
    else
        return ERROR;
}

int inQueue(SqQueue &qu,int x)  //入队
{
    if(isQueueFull(qu))
        return ERROR;

    qu.rear=(qu.rear+1)%MAXSIZE;
    qu.data[qu.rear]=x;

    return TRUE;
}

int outQueue(SqQueue &qu,int &x) //出队
{
    if(isQueueEmpty(qu))
        return ERROR;

    qu.front=(qu.front+1)%MAXSIZE;
    x=qu.data[qu.front];

    return TRUE;
}

int main() 
{
    return 0;
}

相关文章

  • LeetCode 622. 设计循环队列

    622. 设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原...

  • 集合知识点整理

    1.前言:数据结构——队列 队列接口先说明有哪些功能,但不说是如何实现的,队列有两种实现方式: 循环数组 链表 循...

  • 2018-10-11 数据结构学习---循环队列的实现

    循环队列是顺序队的一种,意在解决队首和队尾指针同同时等于MAXSIZE-1的时候,会发声假上溢的情况,利用循环队列...

  • C语言数据结构——线性表链式循环队列(链表实现方式)

    队列相关知识及操作请参看上一章 C语言数据结构——线性表循环队列(动态数组实现方式) 一、链式队列 链式队列 : ...

  • 622 设计循环队列

    题目描述: 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被...

  • LeetCode 622——设计循环队列

    1. 题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被...

  • Leetcode622. 设计循环队列

    题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在...

  • [Leetcode 622]设计循环队列

    设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之...

  • 数组实现循环队列

    循环队列作为一种常用的数据结构,它使头尾指针能够灵活的在容器头尾跳跃,实现循环存取的结构。线性队列,在不移动元素的...

  • 数据结构-队列(Queue)-FIFO

    数据结构-队列(Queue)-FIFO 队列的接口设计 双端队列-Deque 循环队列-CircleQueue 双...

网友评论

    本文标题:2018-10-11 数据结构学习---循环队列的实现

    本文链接:https://www.haomeiwen.com/subject/zrwvaftx.html