c++用数组实现队列

队列(queue) 的特点:
先进先出

数组实现:
array: 存放元素
i: 下一个入队存放元素位置的下标
j: 下一个出队删除元素位置的下表
size: 队列的最大长度
num: 队列中当前元素个数

#include <iostream>
using namespace std;
template<typename T>
class queue{
    public: 
        queue(int size=0){
            array = new T[size];
            i = 0;
            j = 0;
            num = 0;
            this->size = size;
        }
        void push(T val){
            if(num < size && i < size - 1){
                array[i] = val;
                i++;
                num++;
            }else if(num < size && i == size - 1){
                array[0] = val;
                i = 1;
            }
        }
        void pop(){
            if(j == size - 1){
                j = 0;
            }else{
                j++;
            }
            num--;
        }
        int size(){
            return num;
        }
        int capacity(){
            return size;
        }
        T front(){
            return array[j]; 
        }
        ~queue(){
            delete[] array;
        }
    protected:
        T *array;
        int i;
        int j;
        int size;
        int num;
};
int main(){
    queue<int> q(20);
    q.push(21);
    cout << q.front() << endl;
    q.push(31);
    cout << q.front() << endl;
    q.push(41);
    q.pop();
    cout << q.front() << endl;
    return 0;
}
发布了21 篇原创文章 · 获赞 0 · 访问量 163

猜你喜欢

转载自blog.csdn.net/qq_45227330/article/details/105059690