下面是一个简单的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;
}

这个队列类使用数组作为底层数据结构,实现了队列的基本操作:入队、出队、查看队列头部元素、判断队列是否已满、判断队列是否为空、获取队列中元素的数量。在构造函数中,我们动态分配了一个数组作为队列的底层数据结构,然后初始化了队列的头部、尾部、容量和元素数量。在析构函数中,我们释放了动态分配的数组内存

c++ 编写一个类实现队列queue的结构。

原文地址: https://www.cveoy.top/t/topic/d60J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录