数据结构.队列的顺序表示

一、队列的定义

数据结构.队列的顺序表示_第1张图片

二、队列的顺序实现

数据结构.队列的顺序表示_第2张图片

数据结构.队列的顺序表示_第3张图片

#include
using namespace std;
const int N = 10;
typedef struct {
    int data[N];
    int front,rear;
}SqQueue;

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

}

三、入队

数据结构.队列的顺序表示_第4张图片

数据结构.队列的顺序表示_第5张图片

数据结构.队列的顺序表示_第6张图片

bool Push(SqQueue& Q, int x)//入队
{
    if ((Q.rear + 1) % N == Q.front)//判断队列已满的条件
    {
        return false;
    }
    Q.data[Q.rear] = x;
    Q.rear = (Q.rear + 1) % N;
    return true;
}

四、出队

数据结构.队列的顺序表示_第7张图片

bool Pop(SqQueue Q, int &x)//出队
{
    if (Q.front == Q.rear)return false;//当队首指向队尾时候队列为空
    Q.data[Q.front] = x;
    Q.front = (Q.front + 1) % N;
    return true;
}

五、其他方案

数据结构.队列的顺序表示_第8张图片

数据结构.队列的顺序表示_第9张图片

数据结构.队列的顺序表示_第10张图片

数据结构.队列的顺序表示_第11张图片

数据结构.队列的顺序表示_第12张图片

你可能感兴趣的:(数据结构,算法)