队列c语言实现及其操作讲解

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

你可能感兴趣的:(数据结构)