typedef int QElemtype;
typedef struct QNode
{
QElemtype data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,rear;
}LinkQueue;
//插入元素e为Q的新的队尾元素
Status EnQueue(LinkQueue *Q,QElemtype e)
{
QueuePtr s=(QueuePtr)malloc(sizeof(QNode));
if(!s) exit(OVERFLOW);
s->data=e;
s->next=NULL;
Q->rear->next=s;
Q->rear=s;
return OK;
}
//若队列不空,删除Q的队头元素,用e返回其值,并返回OK,否则返回ERROR
Status DeQueue(LinkQueue *Q,QElemtype *e)
{
QueuePtr p;
if(Q->front==Q->rear) return ERROR; //队列空
p=Q->front->next;
*e=p->data;
Q->front->next=p->next;
if(Q->rear==p) Q->rear=Q->front;
free(p);
return OK;
}
队列的链式存储操作
最新推荐文章于 2022-10-17 22:45:01 发布