什么是队列?c++代码演示
作者:野牛程序员:2023-02-20 18:41:17数据结构阅读 3004
队列是一种常用的数据结构,用于在计算机程序中存储和管理数据。队列的特点是先进先出 (FIFO):先添加到队列中的数据项也是先被取出。
以下是用C++语言编写队列程序的示例代码:
#include
using namespace std;
#define MAX_SIZE 10 // 定义队列的最大容量
class Queue {
private:
int front, rear;
int arr[MAX_SIZE];
public:
Queue() { // 构造函数
front = -1;
rear = -1;
}
bool isFull() { // 判断队列是否已满
return (rear == MAX_SIZE - 1);
}
bool isEmpty() { // 判断队列是否为空
return (front == -1 && rear == -1);
}
void enqueue(int x) { // 入队操作
if (isFull()) {
cout << "队列已满" << endl;
return;
} else if (isEmpty()) {
front = 0;
rear = 0;
} else {
rear++;
}
arr[rear] = x;
}
void dequeue() { // 出队操作
if (isEmpty()) {
cout << "队列为空" << endl;
return;
} else if (front == rear) {
front = -1;
rear = -1;
} else {
front++;
}
}
int getFront() { // 获取队首元素
if (isEmpty()) {
cout << "队列为空" << endl;
return -1;
}
return arr[front];
}
void printQueue() { // 打印队列元素
if (isEmpty()) {
cout << "队列为空" << endl;
return;
}
for (int i = front; i <= rear; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
Queue q;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
cout << "队列元素: ";
q.printQueue();
q.dequeue();
q.dequeue();
cout << "队列元素: ";
q.printQueue();
cout << "队首元素: " << q.getFront() << endl;
return 0;
}在这个示例代码中,我们定义了一个队列类 Queue,包含了队列的基本操作:入队 enqueue、出队 dequeue、获取队首元素 getFront、判断队列是否已满 isFull、判断队列是否为空 isEmpty、打印队列元素 printQueue。在主函数中,我们实例化一个队列对象 q,并进行一些队列操作,最后打印队列元素和队首元素。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

