码迷,mamicode.com
首页 > 其他好文 > 详细

队列的链式实现

时间:2020-05-02 22:44:19      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:typedef   lin   else   class   amp   div   node   data   deque   

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; 
}

 

队列的链式实现

标签:typedef   lin   else   class   amp   div   node   data   deque   

原文地址:https://www.cnblogs.com/ikigai18/p/12819813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!