#include <stdio.h>
#include<stdlib.h>
//链式队列节点
typedef struct LinkNode {
int data;
struct LinkNode* next;
}LinkNode;
//链式队列
typedef struct {
LinkNode* front,* rear;
//int length; 长度
}LinkQueue;
//初始化(带头结点)
void InitQueue(LinkQueue& Q) {
Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));
Q.front->next = NULL;
}
//判空
bool IsEmpty(LinkQueue& Q) {
if (Q.front == Q.rear)
return true;
else
return false;
}
//入队
void EnQueue(LinkQueue& Q, int x) {
LinkNode *q = (LinkNode*)malloc(sizeof(LinkNode));
q->data = x;
q->next = NULL;
Q.rear->next = q;
Q.rear = q;
}
//出队
bool DeQueue(LinkQueue& Q, int x) {
if (Q.front == Q.rear)
return false;
LinkNode* p = Q.front->next;
x = p->data;
Q.front = Q.front->next;
if (Q.rear == p) //删除的是最后一个节点
Q.rear = Q.front;
free(p);
return true;
}
LinkQueue
最新推荐文章于 2024-03-28 15:44:23 发布