概述
container/heap包对通用堆进行了定义并实现了标准堆操作函数,以此为基础可以很容易对各类堆和优先队列进行实现。
类型接口
heap包中最核心的就是heap.Interface接口,堆的基础存储是一个树形结构,可以用数组或是链表实现。通过heap的函数,可以建立堆并在堆上进行操作;要使用heap包的函数,你的类需要实现heap.Interface接口,定义如下:
// heap.Interface
type Interface interface {
sort.Interface
Push(x interface{
}) // 在Len()位置插入一个元素
Pop() interface{
} // 删除并返回Len()-1位置的元素
}
// sort.Interface
type <