#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode;
typedef struct Queue{
LNode *front,*rear;
}Queue;
void InitQueue(Queue &Q)
{
Q.front = Q.rear = (LNode*)malloc(sizeof(LNode)); //注意 创建头结点
Q.front->next =NULL;
}
bool IsEmpty(Queue Q)
{
if(Q.front == Q.rear)
return true;
else
return false;
}
bool EnQueue(Queue &Q,ElemType x)
{
LNode *s = (LNode*)malloc(sizeof(LNode));
s->data = x;
Q.rear->next = s;
s->next = NULL;
Q.rear = s;
return true;
}
bool DeQueue(Queue &Q,ElemType &x)
{
if(IsEmpty(Q))
return false;
LNode *p = Q.front->next;
x = p->data;
Q.front->next = p->next;
if(Q.rear == p)
Q.front = Q.rear;
free(p);
return true;
}
void main()
{
Queue Q;
ElemType getVal;
InitQueue(Q);
EnQueue(Q,1);
EnQueue(Q,2);
EnQueue(Q,3);
DeQueue(Q,getVal);
DeQueue(Q,getVal);
printf("%d\n",getVal);
}
队列-链式存储
最新推荐文章于 2024-10-07 15:43:52 发布
这篇博客详细介绍了如何使用C++定义并实现一个队列结构,包括初始化队列、在队尾添加元素(EnQueue)和从队头删除元素(DeQueue)的步骤。通过实例展示了如何使用`Queue`结构,并展示了队列的基本操作和空队列的处理。
摘要由CSDN通过智能技术生成