数据结构——顺序队列

/************************
author's email:[email protected]
date:2018.2.7
顺序队
************************/
#include <iostream>
using namespace std;
#define maxSize 6
typedef struct
{
    int data[maxSize];
    int front;
    int rear;
}SqQueue;
void initQueue(SqQueue &qu)
{
    qu.front = qu.rear = 0;//队首和队尾指针重合,并且指向0
}
bool isQueueEmpty(SqQueue qu)
{
    if (qu.front == qu.rear)//不论队首、队尾指针指向数组中的哪个位置,只要两者重复即为空
        return true;
    else
        return false;
}
int enQueue(SqQueue &qu, int x)
{
    if ((qu.rear + 1) % maxSize == qu.front)//队满的判断条件,队满则不能入队
        return 0;
    qu.rear = (qu.rear + 1) % maxSize;//若队未满,则先移动指针
    qu.data[qu.rear] = x;//再存入元素
    return 1;
}
int deQueue(SqQueue &qu, int &x)
{
    if (qu.front == qu.rear)//若队空,则不能出队
        return 0;
    qu.front = (qu.front + 1) % maxSize;//若队不空,则先移动指针
    x = qu.data[qu.front];//再出队
    return 1;
}
int main()
{
    SqQueue qu;
    initQueue(qu);
    int exp[maxSize] = { 1,54,46,78,12,63 };
    int i=0;
    int x;
    while (i < maxSize )
    {
        enQueue(qu, exp[i]);
        ++i;
        deQueue(qu, x);
        cout << x << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wardseptember/article/details/79282324
今日推荐