#include <iostream>
using namespace std;
#define MAXSIZE 100
typedef int ElemType;
typedef struct QNode {//节点的创建
ElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {//队列的创建
QueuePtr front;
QueuePtr rear;
} LinkQueue;
bool InitQueue(LinkQueue &Q) {//队列的初始化
Q.front = Q.rear = new QNode;
if (!Q.front) {
cout << "开辟空间失败" << endl;
return false;
}
Q.front->next = NULL;
return true;
}
bool DestroyQueue(LinkQueue &Q) {//摧毁队列
while (Q.front) {
QNode *p;
p = Q.front->next;
free(Q.front);
Q.front = p;
}
return true;
}
bool Push(LinkQueue &Q, ElemType e) {//入队
QNode *p;
p = new QNode;
if (!p) {
cout << "开辟空间失败" << endl;
return false;
}
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return true;
}
bool Pop(LinkQueue &Q, ElemType &e) {//出队
if (Q.front == Q.rear)
return false;
QNode *p;
p = new QNode;
if (!p) {
cout << "开辟空间失败" << endl;
return false;
}
p = Q.front->next;
e = p->data;
Q.front->next = p->next;
if (Q.rear == p)
Q.rear = Q.front;
delete p;
return true;
}
bool GetTop(LinkQueue Q, ElemType &e) {//取队头
if (Q.front == Q.rear)
return false;
e = Q.front->next->data;
return true;
}
C++实现链队列
最新推荐文章于 2022-04-15 10:56:51 发布
这篇博客详细介绍了如何使用C++语言实现链式队列的数据结构,包括初始化、摧毁、入队、出队和查看队头元素等基本操作。通过定义QNode结构体和LinkQueue结构体,实现了队列的动态存储。代码中涵盖了错误处理和内存管理,为理解和实现链式队列提供了实例。
摘要由CSDN通过智能技术生成