// generic queue implemented with doubly linked list
#include<iostream>
#include<string>
#include <list>
using std::cout;
using std::endl;
using std::string;
template<class T>
class Queue {
public:
Queue() {
}
void clear() {
lst.clear();
}
bool isEmpty() const {
return lst.empty();
}
T& front() {
return lst.front();
}
void enqueue(const T& el) {
lst.push_back(el);
}
T dequeue() {
T el = lst.front();
lst.pop_front();
return el;
}
private:
std::list<T> lst;
};
int main(){
Queue<string> tque;
tque.enqueue("you ");
tque.enqueue("are ");
tque.enqueue("a ");
tque.enqueue("shining ");
tque.enqueue("star.");
while(!tque.isEmpty()){
cout << tque.dequeue();
}
cout << endl;
// A segmentation fault will happen.
//cout << tque.dequeue();
}转载于:https://blog.51cto.com/frankniefaquan/1934157
本文介绍了一种使用双向链表实现队列的数据结构,并通过具体的C++代码展示了队列的基本操作,包括入队、出队等。通过该实现方式,可以有效地进行元素的添加和删除操作。
510

被折叠的 条评论
为什么被折叠?



