队列:先进先出
#include<stdio.h>
#include<stdlib.h>
typedef int QItem;
typedef struct qnode*qlink;
typedef struct qnode
{
QItem element;
qlink next;
}Qnode;
typedef struct Ique *Queue;
typedef struct Ique
{
qlink rear;
qlink front;
}Lqueue;
//*******************************
//队列初始化
Queue QueueInit()
{
Queue Q;
Q=(Queue)malloc(sizeof*Q);
Q->front=Q->rear=0;
return Q;
}
//******************************
//队列是否为空
int QueueEmpty(Queue Q)
{
return Q->front==0;
}
//******************************
//为队列Q试分配一个结点,检测队列是否已满
int QMemFull()
{
qlink p;
if((p=(qlink)malloc(sizeof(Qnode)))==0)
return 1;
else {
free(p);
return 0;
}
}
int QueueFull(Queue Q)
{
return QMemFull();
}
//*******************************
//返回队首的元素
QItem QueueFirst(Queue Q)
{
if(QueueEmpty(Q))
{
printf("Queue is empty");
exit(0);
}
return Q->front->element;
}
//******************