011-03-05 CLRS Chapter6 Heapsort(下)优先队列

来源:互联网 发布:以太网网络变压器 编辑:程序博客网 时间:2024/06/16 00:37

 

2011-03-04 CLRS Chapter6 Heapsort()优先队列

优先队列的概念好理解,想想进程调度中的进程队列就是了。在CLRS中,优先队列的定义如下:

A priorityqueue is a data structure for maintaining a set S of elements,each with an associated value called a key. A max-priorityqueue supports the following operations.

·        INSERT(S, x)inserts the element x into the set S. This operation could bewritten as S S {x}.

·        MAXIMUM(S) returns theelement of S with the largest key.

·        EXTRACT-MAX(S) removesand returns the element of S with the largest key.

·        INCREASE-KEY(S, x,k) increases the value of element x's key to the new value k,which is assumed to be at least as large as x's current key value.

下面的代码由Java实现,很是别扭,如果把Heap当作数据层,PriorityQueue当作逻辑层,那最大的问题就是对于很多代码,或者说功能,究竟应该放到数据层呢,还是应该放到逻辑层?

HeapPriorityQueue.java:

 

底层的Heap数据结构 Heap.java

 

 

原创粉丝点击