您的位置:首页 > 编程语言 > C语言/C++

C++封装队列

2016-07-04 19:50 197 查看

对于队列的思考

队列拥有的特性和栈相反,即:栈先进后出,队列先进先出。

而与栈相同的是,栈仍然也是线性的存储结构进行存储,而与栈相同的是,需要频繁的进行入队和出队,因此仍然可以采用栈的相同方式进行类似的实现。

详细参考: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