#include "Stdio.h"
#define QueueSize 100 /*定义队列的存储空间*/
typedef char DataType; /*定义l队列的存储类型*/
/***************队列的存储结构*****************/
typedef struct
{
DataType data[QueueSize]; /*存储单元*/
int front; /*队头位置*/
int rear; /*队尾位置*/
}SeqQueue;
/****************生成队列********************/
void Ininital(SeqQueue* Q)
{
Q->front=Q->rear=0;
}
/***************判断队列是否为空****************/
int IsEmpty(SeqQueue* Q)
{
return Q->front==Q->rear;
}
/***************判断队列是否为满****************/
int IsFull(SeqQueue* Q)
{
return Q->rear==QueueSize-1+Q->front;
}
/*****************进队列**********************/
void EnQueue(SeqQueue* Q,DataType x)
{
if(IsFull(Q))
{
printf("the queue is full");
exit(1);
}
Q->data[Q->rear++]=x; /*注意运算符优先级*/
}
/*****************出队列*********************/
DataType DeQueue(SeqQueue* Q)
{
if(IsEmpty(Q))
{
printf("the queye is empty");
exit(1);
}
return Q->data[Q->front++];
}
/****************取队列顶端元素**************/
DataType Front(SeqQueue* Q)
{
if(IsEmpty(Q))
{
printf("the queue is empty");
exit(1);
}
return Q->data[Q->front];
}
/****************主函数*********************/
int main(void)
{
SeqQueue s;
DataType first,sec;
Ininital(&s);
EnQueue(&s,'a');
EnQueue(&s,'b');
first=Front(&s);
DeQueue(&s);
sec=Front(&s);
DeQueue(&s);
printf("%c %c",first,sec);
getch();
return 0;
}