2018-10-11 數(shù)據(jù)結構學習---循環(huán)隊列的實現(xiàn)

  • 循環(huán)隊列是順序隊的一種,意在解決隊首和隊尾指針同同時等于MAXSIZE-1的時候,會發(fā)聲假上溢的情況,利用循環(huán)隊列解決了這個問題

  • 判斷是否隊空,則看rear=front==0

  • 判斷是否隊滿,則看(rear+1)%MAXSIZE==front

/*
 * 學習時間:2018-10-11
 * 學習內(nèi)容:數(shù)據(jù)結構之循環(huán)隊列的實現(xiàn)
 * 學習人:田超
 * QQ:770925351
 * Email:770925351@qq.com
 * 開發(fā)環(huán)境: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];          //數(shù)據(jù)域
}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;
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容