zoukankan      html  css  js  c++  java
  • ArrayQueue

    • 队列是一种 先进先出(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;
    }
    

    复杂度分析

    在这里插入图片描述

  • 相关阅读:
    汉诺塔IX
    N!
    卡片游戏
    vuejs 2—bind
    vuejs 1—基础
    困难的串 Kryptn Factor Uva129
    JavaScript13—JSON
    JavaScript练习—二级菜单
    JavaScript12—tools.js
    JavaScript11—定时器
  • 原文地址:https://www.cnblogs.com/chengmf/p/12685176.html
Copyright © 2011-2022 走看看