您的位置:首页 > 理论基础 > 数据结构算法

数据结构之C/C++实现循环队列

2018-07-12 23:51 585 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: