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++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解