数据结构----------------优先队列

优先队列

主要用于:1.插入 

     2.删除最大元素

基于实现这两项功能,用二叉堆来实现,

分析:

____________MaxPQ<Key>implementsIterator<Key>_______________________

insert()

delMax()                           优先队列的2个主要功能

------------------------------------------------------------------------------------------------

isEmpty()         //判断是否为空

size()     //计算队列中元素的个数(就是数组的length)

max()             //返回最大元素

resize()          //加倍数组长度,必要的时候

------------------------------------------------------------------------------------------------

swim(int k)    //上浮

sink(int k)     //下沉(队列经过插入和删除后二叉树的结构有可能是不不平衡需要用这两个方法调整)

-----------------------------------------------------------------------------------------------

less(int i, int j)     //比较两个元素的大小

exch(int i, int j)    //交换两个元素

-------------------------------------------------------------------------------------------------

isMaxHeap()        //判断基于二叉树实现的堆否平衡

isMaxHeap(int k)

 

posted @ 2016-10-27 11:50  lifehrx  阅读(140)  评论(0编辑  收藏  举报