c++ 编写一个类实现队列queue的结构。
下面是一个简单的C++编写的队列类实现:
#include <iostream>
using namespace std;
class Queue {
private:
int* arr; // 指向队列的数组
int front; // 队列的头部
int rear; // 队列的尾部
int capacity; // 队列的容量
int count; // 队列中元素的数量
public:
Queue(int size) { // 构造函数
arr = new int[size]; // 动态分配数组
capacity = size;
front = 0;
rear = -1;
count = 0;
}
~Queue() { // 析构函数
delete[] arr; // 释放内存
}
void enqueue(int item) { // 向队列中添加元素
if (isFull()) {
cout << "队列已满,无法添加元素!" << endl;
return;
}
rear = (rear + 1) % capacity;
arr[rear] = item;
count++;
}
void dequeue() { // 从队列中移除元素
if (isEmpty()) {
cout << "队列为空,无法移除元素!" << endl;
return;
}
front = (front + 1) % capacity;
count--;
}
int peek() { // 查看队列头部元素
if (isEmpty()) {
cout << "队列为空,无法查看元素!" << endl;
return -1;
}
return arr[front];
}
bool isFull() { // 判断队列是否已满
return count == capacity;
}
bool isEmpty() { // 判断队列是否为空
return count == 0;
}
int size() { // 获取队列中元素的数量
return count;
}
};
int main() {
Queue q(5);
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
q.enqueue(6); // 队列已满,无法添加元素!
cout << "队列中元素数量为:" << q.size() << endl; // 队列中元素数量为:5
cout << "队列头部元素为:" << q.peek() << endl; // 队列头部元素为:1
q.dequeue();
q.dequeue();
cout << "队列中元素数量为:" << q.size() << endl; // 队列中元素数量为:3
cout << "队列头部元素为:" << q.peek() << endl; // 队列头部元素为:3
return 0;
}
这个队列类使用数组作为底层数据结构,实现了队列的基本操作:入队、出队、查看队列头部元素、判断队列是否已满、判断队列是否为空、获取队列中元素的数量。在构造函数中,我们动态分配了一个数组作为队列的底层数据结构,然后初始化了队列的头部、尾部、容量和元素数量。在析构函数中,我们释放了动态分配的数组内存
原文地址: https://www.cveoy.top/t/topic/d60J 著作权归作者所有。请勿转载和采集!