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;
    }
    

    复杂度分析

    在这里插入图片描述

  • 相关阅读:
    数据库基础
    (转)数据流图
    (转)SQL执行顺序
    (转)数据库隔离级别及实现原理
    (转)求单链表是否有环,环入口和环长
    (转)最长公共子序列
    (转)Java锁、自旋锁、CAS机制
    Java线程状态转换
    OpenSUSE 13.2安装Texlive2014+Texmaker+Lyx
    GIMP也疯狂之动态图的制作(四)
  • 原文地址:https://www.cnblogs.com/chengmf/p/12685176.html
Copyright © 2011-2022 走看看