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.youkuaiyun.com/lxl121181/article/details/73300700
本文详细介绍了如何使用C语言实现循环队列,包括队列的初始化、判断队列是否为空或满、队尾插入元素及队头删除元素等操作。通过具体的代码示例,深入解析了循环队列的工作原理及其在广度遍历等场景中的应用。
2082

被折叠的 条评论
为什么被折叠?



