#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#define ElemType int
#define MAXSIZE 100
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef struct{
ElemType data[MAXSIZE];
int front,rear;//队头,队尾
}Queue,*SqQueue;
//初始化队
void InitQueue(SqQueue &q){
q=new Queue;
q->front=q->rear=-1;
}
//销毁队列
void DestroyQueue(SqQueue &q){
delete q;
}
//判断是否为空
bool QueueEmpty(SqQueue &q){
return (q->front==q->rear);
}
//进队
bool InputQueue(SqQueue &q){
if(q->rear==MAXSIZE-1){
return false;
}
cout<<"请输入你要进队元素的个数:";
int number;
cin>>number;
int i;
for(i=0;i<number;i++){
q->rear++;
ElemType elem;
cout<<"请输入第"<<i+1<<"个元素:";
cin>>elem;
q->data[q->rear]=elem;
}
return true;
}
//出队
bool OutputQueue(SqQueue &q){
if(q->front==q->rear){
return false;
}
q->front++;
ElemType elem;
elem=q->data[q->front];
cout<<"元素"<<elem<<"出队。";
return true;
}
int main(){
SqQueue q;
InitQueue(q);
InputQueue(q);
cout<<endl;
bool flag=QueueEmpty(q);
if(flag){
cout<<"次队列为空。"<<endl;
}else{
cout<<"次队列非空。"<<endl;
}
cout<<endl;
OutputQueue(q);
cout<<endl;
}