C++封装队列

来源:互联网 发布:php短信接口类型 编辑:程序博客网 时间:2024/06/06 02:57

对于队列的思考

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

0 0
原创粉丝点击