c语言实现代码
特点:先进先出
/** 队列定义及相关操作(广度遍历会用到此循环队列) **/
typedef struct LoopQueue{
int data[MaxVex];
int front,rear;
}LoopQueue,*Queue; //队列结构
void initQueue(Queue &Q){
Q->front=Q->rear=0;
}
Bool QueueEmpty(Queue &Q){
if(Q->front == Q->rear){
return TRUE;
}else{
return FALSE;
}
}
Bool QueueFull(Queue &Q){
if((Q->rear+1)%MaxVex == Q->front){
return TRUE;
}else{
return FALSE;
}
}
/**
* 队尾插入元素
*/
void EnQueue(Queue &Q,int e){
if(!QueueFull(Q)){
Q->data[Q->rear] = e;
Q->rear = (Q->rear+1)%MaxVex;
}
}
/**
* 队头删除元素
*/
void DeQueue(Queue &Q,int *e){
if(!QueueEmpty(Q)){
*e = Q->data[Q->front];
Q->front = (Q->front+1)%MaxVex;
}
}
参考博客:
代码:https://www.cnblogs.com/linuxAndMcu/p/7735444.html
讲解:http://www.cnblogs.com/zhangming-blog/p/5405022.html
c++队列用法:https://blog.csdn.net/lxl121181/article/details/73300700