队列
#include <iostream>
using namespace std;
//队列的最大容量
const int MAXSIZE = 100;
//结构体定义
struct Queue {
int data[MAXSIZE];
int front, rear;
};
//初始化队列
void initQueue(Queue& Q) {
Q.front = 0;
Q.rear = 0;
}
//判断队列是否为空
bool isEmpty(Queue Q) {
return Q.front == Q.rear;
}
//判断队列是否已满
bool isFull(Queue Q) {
return (Q.rear + 1) % MAXSIZE == Q.front;
}
//入队
bool enqueue(Queue& Q, int x) {
if (isFull(Q)) {
cout << "队列已满" << endl;
return false;
}
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MAXSIZE;
return true;
}
//出队
bool dequeue(Queue& Q, int& x) {
if (isEmpty(Q)) {
cout << "队列为空" << endl;
return false;
}
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MAXSIZE;
return true;
}
//遍历队列
void traverseQueue(Queue Q) {
if (isEmpty(Q)) {
cout << "队列为空" << endl;
return;
}
cout << "队列元素为:";
int i = Q.front;
while (i != Q.rear) {
cout << Q.data[i] << " ";
i = (i + 1) % MAXSIZE;
}
cout << endl;
}
评论区