双端队列
在Java SE6中,引入了Deque接口,并由ArrayDeque和LinkedList两个类实现,都提供了双端队列,并且可以在必要时增加队列的长度,不支持在队列中间添加元素。
Priority queue
优先级队列中的元素可以按照任意的顺序插入,却总是按照排序的顺序进行检索,无论何时调用remove方法,总会获得当前优先级队列中最小的元素。优先级队列并没有对所有的元素进行排序,而是使用了数据结构中的堆(heap),heap是一个可以自我调整的二叉树,对树执行add和remove操作,可以让最小的元素移动到根,而不必花费时间对元素进行排序。
使用优先级队列的典型示例是任务调度,每一个任务有一个优先级,任务以随机顺序添加到队列中,每当启动一个新任务时,都将优先级最好的任务从队列中删除(习惯将1设为“最高”,所以会将最小的元素删除)
下面程序显示了一个正在运行的优先级队列,与TreeSet中的迭代不同,这里的迭代并不是按照元素的排列顺序访问的,而删除却总是删掉剩余元素中优先级最小的元素。
public class PriorityQueueTest
{
public static void main(String[] args)
{
PriorityQueue<GregorianCalendar> pq = new PriorityQueue<GregorianCalendar>();
pq.add(new GregorianCalendar(1906, Calendar.DECEMBER, 9)); // G. Hopper
pq.add(new GregorianCalendar(1815, Calendar.DECEMBER, 10)); // A. Lovelace
pq.add(new GregorianCalendar(1903, Calendar.DECEMBER, 3)); // J. von Neumann
pq.add(new GregorianCalendar(1910, Calendar.JUNE, 22)); // K. Zuse
System.out.println("Iterating over elements...");
for (GregorianCalendar date : pq)
System.out.println(date.get(Calendar.YEAR));
System.out.println("Removing elements...");
while (!pq.isEmpty())
System.out.println(pq.remove().get(Calendar.YEAR));
}
}
分享到:
相关推荐
算法中优先级队列问题...用堆排序的算法来做的例子
优先级队列的实现,包括堆的实现,最大堆的生成
C++ 中”priority_queue” 优先级队列实例详解 1. 简介 标准库队列使用了先进先出(FIFO)的存储和检索策略. 进入队列的对象被放置在尾部, 下一个被取出的元素则取自队列的首部. 标准库提供了两种风格的队列: FIFO ...
优先级队列为大小堆的结构
车道Lane包提供队列,优先级队列,堆栈和双端队列数据结构的实现。 它的设计考虑了简单性,性能和并发使用。优先队列Pqueue是堆优先级队列数据结构的实现。 它可以是最大订购量还是最小订购量,是否已同步以及对于...
优先队列(Priority Queue)是一种抽象数据类型,它类似于常规的队列或栈,但每个元素都有一定的优先级。在优先队列中,元素的出队顺序不是按照它们进入队列的顺序,而是根据它们的优先级来确定。具有高优先级的元素...
Redis优先级队列 redis-priority-queue是一个简单的工作队列,类似于具有以下新增功能: 可以添加具有优先级的项目(介于-9007199254740992和9007199254740992之间) 队列会自动进行重复数据删除(重复的项目在推送...
前端开源库-js-priority-queueJS优先级队列,优先级队列数据结构
自己编写优类似优先队列数据(priority_queue)的功能,适合上交的课程设计作业
Android Priority Job Queue
Web上有许多优先级队列实现,但是我找不到满足以下条件的任何优先级队列: 在运行时不分配内存 有测试 是功能性的,面向数据的 很小! (〜150行代码) 是一个纯ES模块 所以我们到了! 用法 import PQ from '...
TaskPriority 优先级的标准如下: TaskPriority.LOW < TaskPriority.DEFAULT < TaskPriority.HIGH 当优先级相同 按照插入次序排队 默认优先级是 TaskPriority.DEFAULT 任务 任务种类可分为 2 种,分别是 执行时间...
主要介绍了C++ 中"priority_queue" 优先级队列实例详解的相关资料,需要的朋友可以参考下
编写优先队列数据(priority_queue)
priority_queue用法,希望对大家会有所帮助
使用堆数据结构的性能优先级队列实现。 目录 。尺寸() .toArray() 。清除() 建造 执照 安装 npm install --save @datastructures-js/priority-queue 原料药 此存储库中有两种类型的PriorityQueue:...
数据结构课程设计优先队列数据(priority_queue)类型实现优先队列的初始化,查找,插入,删除操作,并且控制其查找,插入,删除操作的算法时间复杂度为O(logn)。
主要介绍了 STL priority_queue(优先队列)详解的相关资料,需要的朋友可以参考下
用linked list来写priority queue