亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++循環隊列的模板實現

c++
小樊
82
2024-07-14 10:21:28
欄目: 編程語言

#include <iostream>

template <class T>
class CircularQueue {
private:
    int front, rear, maxSize;
    T* queueArray;
public:
    CircularQueue(int size) {
        maxSize = size + 1; // one extra space for checking full condition
        front = rear = 0;
        queueArray = new T[maxSize];
    }

    ~CircularQueue() {
        delete[] queueArray;
    }

    bool isEmpty() {
        return front == rear;
    }

    bool isFull() {
        return (rear + 1) % maxSize == front;
    }

    void enqueue(T item) {
        if (isFull()) {
            std::cout << "Queue is full, cannot enqueue.\n";
        } else {
            rear = (rear + 1) % maxSize;
            queueArray[rear] = item;
        }
    }

    T dequeue() {
        if (isEmpty()) {
            std::cout << "Queue is empty, cannot dequeue.\n";
            return T();
        } else {
            front = (front + 1) % maxSize;
            return queueArray[front];
        }
    }
};

int main() {
    CircularQueue<int> queue(5);

    queue.enqueue(1);
    queue.enqueue(2);
    queue.enqueue(3);

    std::cout << "Dequeued item: " << queue.dequeue() << std::endl;
    std::cout << "Dequeued item: " << queue.dequeue() << std::endl;

    queue.enqueue(4);
    queue.enqueue(5);
    queue.enqueue(6);

    std::cout << "Dequeued item: " << queue.dequeue() << std::endl;
    std::cout << "Dequeued item: " << queue.dequeue() << std::endl;
    std::cout << "Dequeued item: " << queue.dequeue() << std::endl;

    return 0;
}

這段代碼實現了一個循環隊列的模板類CircularQueue,其中包括了隊列的基本操作:enqueue入隊、dequeue出隊、isEmpty判空、isFull判滿等。通過模板類的方式實現,可以支持不同類型的元素入隊和出隊操作。

0
兴文县| 屏东县| 六安市| 昆明市| 柞水县| 布拖县| 万宁市| 老河口市| 旺苍县| 阳山县| 平邑县| 甘肃省| 昭觉县| 喀什市| 威海市| 化州市| 科尔| 武乡县| 余江县| 惠来县| 五家渠市| 舒城县| 临海市| 沛县| 丹阳市| 宁安市| 当涂县| 买车| 景泰县| 东城区| 县级市| 四川省| 永丰县| 介休市| 都江堰市| 丹江口市| 永济市| 清远市| 淳安县| 贵阳市| 临猗县|