数组队列(ArryQueue))

  • 队列是一种 先进先出(First In First Out,FILO)线性数据结构 。

在这里插入图片描述

代码是在动态数组的二次封装,先阅读更佳: Array.h 点它

代码清单

#ifndef C___ARRAYQUEUE_H
#define C___ARRAYQUEUE_H
#include "Array.h"

template<typename T>
class ArrayQueue{

public:
    ArrayQueue();
    ArrayQueue(const int capacity);
    int getSize()const;
    int getCapacity()const;
    bool isEmpty()const;
    void enqueue(const T&t);
    T dequeue();
    T getFront();
    void print()const;
    ~ArrayQueue();
private:
    Array<T>*arr;
};

template<typename T>
ArrayQueue<T>::ArrayQueue() {
    arr = new Array<T>();
}

template<typename T>
ArrayQueue<T>::ArrayQueue(const int capacity) {
    arr = new Array<T>(capacity);
}

template<typename T>
int ArrayQueue<T>::getSize()const {
    return arr->getSize();
}

template<typename T>
int ArrayQueue<T>::getCapacity()const{
    return arr->getCapacity();
}

template<typename T>
bool ArrayQueue<T>::isEmpty()const {
    return arr->isEmpty();
}

template<typename T>
void ArrayQueue<T>::enqueue(const T &t) {
    arr->addLast(t);
}

template<typename T>
T ArrayQueue<T>::dequeue() {
    return arr->removeFirst();
}

template<typename T>
T ArrayQueue<T>::getFront() {
    return arr->getFirst();
}

template<typename T>
void ArrayQueue<T>::print() const {
    std::cout << "ArrayQueue: size = " << arr->getSize() << ", capacity = " << arr->getCapacity() << std::endl;
    std::cout << "bottom ";
    arr->print();
}

template<typename T>
ArrayQueue<T>::~ArrayQueue() {
    delete arr;
    arr = nullptr;
}

#endif //C___ARRAYQUEUE_H

main.cpp

int main()
{
    ArrayQueue<int>*aq = new ArrayQueue<int>();
    for(int i = 0;i<10;++i)
    {
        aq->enqueue(i);
    }
    aq->print();
    cout<<endl;
    cout<<"aq->isEmpty()"<<aq->isEmpty()<<endl;
    cout<<endl;
    cout<<"aq->getCapacity"<<aq->getCapacity()<<endl;
    cout<<endl;
    cout<<"aq->getSize()"<<aq->getSize()<<endl;
    cout<<endl;
    cout<<"aq->dequeue()"<<aq->dequeue()<<endl;
    cout<<endl;
    cout<<"aq->getFront()"<<aq->getFront()<<endl;
    cout<<endl;
    aq->print();
    return 0;
}

复杂度分析

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃米饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值