#include <iostream>
using namespace std;
//2018年7月11日01:10:51 循环队列
int MaxSize = 15;
typedef struct {
int data[15];
int front, rear;
}SqQueue;
//初始化循环队列
void InitQueue(SqQueue &Q){
Q.front = Q.rear = 0;
}
//判断队空
bool IsEmpty(SqQueue &Q){
if(Q.front==Q.rear==0){
return true;
}else {
return false;
}
}
//入队一个元素
bool EnQueue(SqQueue &Q, int x){
//判断队是否满
if(Q.front==(Q.rear+1)%MaxSize){
cout << "队列已经满了";
return false;
}
Q.data[Q.rear] = x;
Q.rear = (Q.rear+1)%MaxSize;
return true;
}
//出队一个元素
bool DeQueue(SqQueue &Q, int &x){
//判断队列是否为空
if(Q.front==Q.rear){
cout <<"队列为空";
return false;
}
x = Q.data[Q.front];
Q.front = (Q.front+1)%MaxSize;
return true;
}
bool GetHead(SqQueue &Q, int &x){
//判断队列是否为空
if(Q.front==Q.rear){
cout <<"队列为空"<<endl;
return false;
}
x = Q.data[Q.front];
return true;
}
int main(){
SqQueue Q;
InitQueue(Q);
//cout <<IsEmpty(Q);
int i = 0;
//入队0 1 2 3
while(i<MaxSize-1){
EnQueue(Q, i);
//cout <<i<<"----入队成功"<<endl;
i++;
}
cout <<"----------------------------------------"<<endl;
//出队 0 1 2 3 4
int x=-1;
int j = 0;
while(j<MaxSize-1){
DeQueue(Q, x);
cout <<"x="<<x<<"---出队成功"<<endl;
j++;
}
return 0;
}
转载于:https://my.oschina.net/hpuwxy/blog/1845580