#顺序队列相关操作(C语言实现)
#include<stdio.h>
#define Size 100
typedef int DataType;
typedef struct
{
DataType QData[Size];
int front;
int rear;
}SeqQueue;
void InitQueue(SeqQueue *Q)//初始化队列
{
Q->front=Q->rear=0;
}
int EnterQueue(SeqQueue *Q,DataType x)//进队列
{
if((Q->rear+1)%Size==Q->front)
{
return (false);
}
Q->QData[Q->rear]=x;
Q->rear=(Q->rear+1)%Size;//重设队尾指针
return(true);
}
int DeleteQueue(SeqQueue *Q,DataType *x)//出队列
{
if(Q->rear==Q->front)
{
return(false);
}
*x=Q->QData[Q->front];
Q->front=(Q->front+1)%Size;//重设队首指针
return(true);
}
int EmptyQueue(SeqQueue *Q)//判空
{
if((Q->rear==Q->front)
{
return (ture);
}
else
return (false);
}
int FullQueue(SeqQueue *Q)//判满
{
if((Q->rear+1)%Size==Q->front)
{
return (ture);
}
else
return (false);
}
int GetHead(SeqQueue *Q,DataType &x)//获取队首元素值
{
if(Q->front==Q->rear)
{
return(false);
}
x=Q->QData[Q->front];
return(true);
}