#include <stdio.h>
#include <stdlib.h>
//队列链式结构
typedef struct
{
int data;//数据域
struct LinkNode *next;//next指针
}LinkNode;
typedef struct
{
LinkNode *front;//队头指针
LinkNode *rear;//队尾指针
}*LinkQueue;
//初始化
void InitQueue(LinkQueue &Q){
Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));
Q.front->next = 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;
}
//出队
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;
}
链队列代码
最新推荐文章于 2024-05-10 21:17:41 发布