如何判断顺序队列为空的标准是头指针和尾指针均指向同一个结点?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/18 09:41:11
如何判断顺序队列为空的标准是头指针和尾指针均指向同一个结点?

如何判断顺序队列为空的标准是头指针和尾指针均指向同一个结点?
如何判断顺序队列为空的标准是头指针和尾指针均指向同一个结点?

如何判断顺序队列为空的标准是头指针和尾指针均指向同一个结点?
#include
#include
#define QueueSize 100
typedef struct
{
\x05int bata[QueueSize];
\x05int front ,rear;
}CirQueue;
//构造空队列
void InitQueue(CirQueue *Q)
{
\x05Q->front=0;
\x05Q->rear=0;
}
//判断是否为空队列
int QueueEmpty(CirQueue Q)
{
\x05if(Q.front==Q.rear)
\x05\x05return 1;
\x05else
\x05\x05return 0;
}
//队列长度
int QueueLength(CirQueue Q)
{
\x05return(Q.rear-Q.front+QueueSize)%QueueSize;
}
//入队
void EnQueue(CirQueue *Q,int e)
{
\x05if((Q->rear+1)%QueueSize==Q->front)
\x05\x05printf("队列已满,不能入队\n");
\x05Q->bata[Q->rear]=e;
\x05Q->rear=(Q->rear+1)%QueueSize;
\x05printf("入队成功\n");
}
//出队
int DeQueue(CirQueue *Q)
{
\x05int e;
\x05if(Q->front==Q->rear)
\x05\x05{printf("队列已空,不能出队");return 0;}
\x05e=Q->bata[Q->front];
\x05Q->front=(Q->front+1)%QueueSize;
\x05printf("出队成功\n");
\x05printf("%d\t",e);
\x05return 1;
}
//取队列头元素
int QueueFront(CirQueue Q)
{
\x05int e;
\x05if(Q.front==Q.rear)
\x05{
\x05\x05printf("队列已空\n");return 0;
\x05}
\x05e=Q.bata[Q.front];
\x05printf("\n队列的头元素为:%d",e);
\x05return 1;
}
//遍历队列
void TraverseQueue(CirQueue Q)
{
\x05int i;
\x05i=Q.front;
\x05while ((i+1)%QueueSize