C++封装队列

Posted Zip Zou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++封装队列相关的知识,希望对你有一定的参考价值。

对于队列的思考

队列拥有的特性和栈相反,即:栈先进后出,队列先进先出。
而与栈相同的是,栈仍然也是线性的存储结构进行存储,而与栈相同的是,需要频繁的进行入队和出队,因此仍然可以采用栈的相同方式进行类似的实现。
详细参考:C++封装栈

开始栈的封装

//
//  ZQueue.hpp
//  Array
//
//  Created by 邹智鹏 on 16/7/4.
//  Copyright © 2016年 Frank. All rights reserved.
//

#ifndef ZQueue_hpp
#define ZQueue_hpp

#include "ZLinkedList.hpp"

#include <stdio.h>

namespace ZTemplate 
    template<class T>
    class ZQueue : protected ZLinkedList<T> 
    public:
        ZQueue<T>();
        virtual ~ZQueue<T>()

        /**
         * 入队
         * @param val 要入队的值
         */
        void enqueue(const T &val);

        /**
         * 出队
         */
        T dequeue();

        /**
         * 队列是否空
         * @return 返回是否空队列
         */
        bool empty() const;

        /**
         * 获取队列元素个数
         * @return 返回队列中元素个数
         */
        z_size count() const;
    ;

    template<class T>
    ZQueue<T>::ZQueue() : ZLinkedList<T>() 

    

    template<class T>
    void ZQueue<T>::enqueue(const T &val) 
        this->push_back(val);
    

    template<class T>
    T ZQueue<T>::dequeue() 
        return this->pop(0);
    

    template<class T>
    bool ZQueue<T>::empty() const 
        return this->isEmpty();
    

    template<class T>
    z_size ZQueue<T>::count() const 
        return this->_length;
    


#endif /* ZQueue_hpp */

以上代码即为队列的封装。
涉及之前的类,请移步至:C++封装线性表-向量C++封装链式表-链表C++封装栈
Github地址:Array数据结构封装

以上是关于C++封装队列的主要内容,如果未能解决你的问题,请参考以下文章

使用C++手写队列 - Queue

C++ 多线程框架:消息队列

[ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解

[ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现

优先队列

命令模式C++实现