队列的链式实现
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数据结构系列☀️《队列(顺序队列链式队列双端队列)》——知识点讲解+代码实现☀️