附录C 优先队列
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。
优先队列(priority queue)具有最高级先出的行为特征。优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有:
- 查找。
- 插入一个新元素。
- 删除。
在最小优先队列(min priority queue)中,查找操作用来搜索优先权最小的元素,删除操作用来删除该元素;对于最大优先队列(max priority queue),查找操作用来搜索优先权最大的元素,删除操作用来删除该元素。优先权队列中的元素可以有相同的优先权,查找与删除操作可根据任意优先权进行。
C++优先队列类似队列,但是在这个数据结构中的元素按照一定的断言排列有序。
- empty() 如果优先队列为空,则返回真。
- pop() 删除第一个元素。
- push() 加入一个元素。
- size() 返回优先队列中拥有的元素的个数。
- top() 返回优先队列中有最高优先级的元素。
优先队列,其构造及具体实现可以先不用深究