最大堆是一个完整的二叉树,其中,每个步骤中根节点的值都大于或等于子节点中的值。
以下是使用库函数实现的Max Heap。
import java.util.*; public class Demo{ public static void main(String args[]){ PriorityQueue<Integer> my_p_queue = new PriorityQueue<Integer>(Collections.reverseOrder()); my_p_queue.add(43); my_p_queue.add(56); my_p_queue.add(99); System.out.println("优先级队列中的元素是 : "); Iterator my_iter = my_p_queue.iterator(); while (my_iter.hasNext()) System.out.println(my_iter.next()); my_p_queue.poll(); System.out.println("使用poll函数删除元素后,队列元素为 :"); Iterator<Integer> my_iter_2 = my_p_queue.iterator(); while (my_iter_2.hasNext()) System.out.println(my_iter_2.next()); Object[] my_arr = my_p_queue.toArray(); System.out.println("最大堆的数组表示形式: "); for (int i = 0; i < my_arr.length; i++) System.out.println("Value: " + my_arr[i].toString()); } }
输出结果
优先级队列中的元素是 : 99 43 56 使用poll函数删除元素后,队列元素为: 56 43 最大堆的数组表示形式: Value: 56 Value: 43
名为Demo的类,在主函数中,定义了优先级队列的实例,并使用“add”函数将元素添加到其中。定义了一个迭代器
用于迭代优先级队列中的元素。“poll”函数用于从列表中删除元素。接下来,对元素进行迭代并显示在屏幕上。