/************************
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
今日推荐
周排行