小顶堆 java
时间: 2023-10-11 12:17:28 浏览: 51
小顶堆(Min Heap)是一种基于完全二叉树的数据结构,其中每个节点都比它的子节点小。在 Java 中,可以使用 PriorityQueue 类来实现小顶堆。
以下是一个示例代码:
```java
import java.util.*;
public class MinHeapExample {
public static void main(String[] args) {
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// 添加元素
minHeap.add(5);
minHeap.add(2);
minHeap.add(7);
minHeap.add(3);
// 输出堆顶元素
System.out.println(minHeap.peek()); // 2
// 移除堆顶元素
minHeap.poll();
// 输出堆顶元素
System.out.println(minHeap.peek()); // 3
}
}
```
在上面的示例中,我们首先创建了一个 PriorityQueue 对象,然后通过 add() 方法向堆中添加元素。peek() 方法可以获取堆顶元素,而 poll() 方法则可以移除堆顶元素。注意,PriorityQueue 内部实现时,元素按照自然顺序排序,因此需要保证元素类型实现了 Comparable 接口或者提供了 Comparator 对象来指定排序方式。