container/heap
包提供了一个堆的实现,堆可以被当作最小堆或者最大堆使用,最小堆可以用来实现优先队列,最大堆可以用来实现堆排序。
以下是使用 container/heap
包的基本步骤:
- 定义一个结构体,该结构体用来表示堆中的元素。
- 为该结构体实现
Len() int
、Less(i, j int) bool
和Swap(i, j int)
三个方法,这三个方法用来定义堆的行为。 - 使用
heap.Init
方法初始化堆。 - 使用
heap.Push
方法将元素加入堆中。 - 使用
heap.Pop
方法移除并返回堆顶元素。
下面是一个简单的使用 container/heap
包的例子,实现了一个最小堆:
这个例子中定义了一个整数类型的最小堆,并演示了如何初始化、添加元素、获取堆顶元素以及移除堆顶元素。