一个简单的优先级队列实现

来源:互联网 发布:水仙花c语言 编辑:程序博客网 时间:2024/06/05 08:53

优先级队列底层使用堆来实现。因为堆可以在O(1)的时间内找出优先级最高的元素。
代码如下:

#ifndef _PRIORITY_#define _PRIORITY_#include<iostream&gt;#include"../Heap/Heap.h"using namespace std;template<typename T,typename U&gt;class PriorityQueue{public:    PriorityQueue():MyHeap()    {}    ~PriorityQueue()    {}    PriorityQueue(const PriorityQueue>pq)    {        MyHeap=pq.MyHeap;    }    PriorityQueue>operator=(const PriorityQueue>pq)    {        if(&pq!=this)        {            MyHeap=pq.MyHeap;        }    }    size_t size()    {        return MyHeap.size();    }    bool empty()    {        return MyHeap.empty();    }    void push(const T>key,const U>value)    {    }    void pop()    {    }    U>top()    {    }private:    heap<T&gt; MyHeap;};#endif

以上

如果你有任何想法或是可以改进的地方,欢迎和我交流!

完整代码及测试用例在github上:点我前往

本文首发于www.sbrave.cn

【完】

0 0
原创粉丝点击