用链表std::list实现队列

Posted

tags:

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

// 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();
}


本文出自 “用C++写文章” 博客,谢绝转载!

以上是关于用链表std::list实现队列的主要内容,如果未能解决你的问题,请参考以下文章

浅析用链表实现的队列

JS用链表实现队列,附测试代码

用链表实现轻院1276士兵队列训练问题

数据结构与算法--必知必会

队列的基本操作

队列(存储结构双端链表)--Java实现