队列的链式实现

Posted ikigai18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列的链式实现相关的知识,希望对你有一定的参考价值。

typedef struct LinkNode{ //链式队列结点 
    int data;
    struct LinkNode *next;
}LinkNode;
typedef struct{  //链式队列 
    LinkNode *front,*rear; //队列头指针和尾指针 
    
}LinkQueue;
void InitQueue(LinkQueue &Q){
    //初始时,rear front都指向头结点 
    Q.rear=Q.front=(LinkNode*)malloc(sizeof(LinkNode));
    Q.front->next=NULL;
    //不带头结点时
    Q.rear=NULL;
    Q.front=NULL; 
}
//入队
void EnQueue(LinkQueue &Q,int x){
    LinkNode *s=(LinkNode*)malloc(sizeof(LinkNode));
    s->data=x;
    s->next=NULL;
    //带头结点 
    Q.rear->next=s;
    Q.rear=s;
    //不带头结点
    if(Q.front==NULL){
        Q.front=s;
        Q.rear=s;
    } 
    else{
        Q.rear->next=s;
        Q.rear=s;
    }
} 
//出队(带头结点)
bool DeQueue(LinkQueue &Q,int &x){
    if(Q.front==Q.rear) return false;
    LinkNode *p=Q.front->next;
    x=p->data;
    Q.front->next=p->next;
    if(Q.rear==p)
        Q.rear=Q.front;
    free(p);
    return true;
} 
//出队(不带头结点)
bool DeQueue(LinkQueue &Q,int &x){
    if(Q.front==NULL) return false;
    LinkNode *p=Q.front;
    x=p->next;
    if(Q.front==p){
       Q.front=NULL;
       Q.rear=NULL;
    }
    free(p);
    return true; 
}

 

以上是关于队列的链式实现的主要内容,如果未能解决你的问题,请参考以下文章

链式队列的实现

Python数据结构系列☀️《队列(顺序队列链式队列双端队列)》——知识点讲解+代码实现☀️

队列的链式实现

[数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)

数据结构学习笔记——链式存储结构实现队列(链队)

数据结构学习笔记——链式存储结构实现队列(链队)