container包定义了一套heap的接口,只要实现了这些接口就能作为一个heap来使用,定义如下
go// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// heap 包为任何实现 heap.Interface 接口的类型提供堆操作。堆是一种具有以下特性的树形结构,
// 即每个节点都是其子树中值最小的节点。
//
// 树中的最小元素是根,索引为 0。
//
// 堆通常用于实现优先队列。要构建优先队列,请使用 (负) 优先级作为 Less 方法的排序,
// 这样 Push 就会添加项目,而 Pop 就会从队列中删除优先级最高的项目。
// 示例包括了这样一个实现;文件 example_pq_test.go 包含了完整的源代码。
最近没事做,临近期末,随便翻点源码,发现go竟然有个container包,以前从来没用过,里面有一个简单的list和一个heap,先贴出源码研究一下