用C++写一个顺序队列
时间: 2023-12-27 11:51:02 浏览: 86
数据结构与算法C++实现 循环顺序队列的初始化,求长度,入队,出队
5星 · 资源好评率100%
以下是一个基本的顺序队列的C++实现:
```cpp
#include<iostream>
#define MaxSize 50 // 定义队列最大长度
using namespace std;
// 定义队列结构体
typedef struct {
int data[MaxSize]; // 存储空间
int front, rear; // 队头和队尾指针
} SqQueue;
// 初始化队列
void InitQueue(SqQueue &Q) {
Q.front = Q.rear = 0;
}
// 判断队列是否为空
bool QueueEmpty(SqQueue Q) {
if (Q.front == Q.rear) {
return true;
}
return false;
}
// 判断队列是否已满
bool QueueFull(SqQueue Q) {
if ((Q.rear + 1) % MaxSize == Q.front) {
return true;
}
return false;
}
// 入队
bool EnQueue(SqQueue &Q, int x) {
if (QueueFull(Q)) {
return false;
}
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MaxSize;
return true;
}
// 出队
bool DeQueue(SqQueue &Q, int &x) {
if (QueueEmpty(Q)) {
return false;
}
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true;
}
// 获取队头元素
bool GetHead(SqQueue Q, int &x) {
if (QueueEmpty(Q)) {
return false;
}
x = Q.data[Q.front];
return true;
}
int main() {
SqQueue Q;
InitQueue(Q);
// 入队
EnQueue(Q, 1);
EnQueue(Q, 2);
EnQueue(Q, 3);
EnQueue(Q, 4);
// 出队
int x;
DeQueue(Q, x);
cout << "出队元素为:" << x << endl;
// 获取队头元素
GetHead(Q, x);
cout << "队头元素为:" << x << endl;
return 0;
}
```
这段代码实现了一个基本的顺序队列,可以对队列进行入队、出队、获取队头元素等操作。
阅读全文