12345678910111213141516171819202122232425262728293031 |
- package scheduler
- type nodeMaxHeap struct {
- nodes []NodeInfo
- lessFunc func(*NodeInfo, *NodeInfo) bool
- length int
- }
- func (h nodeMaxHeap) Len() int {
- return h.length
- }
- func (h nodeMaxHeap) Swap(i, j int) {
- h.nodes[i], h.nodes[j] = h.nodes[j], h.nodes[i]
- }
- func (h nodeMaxHeap) Less(i, j int) bool {
- // reversed to make a max-heap
- return h.lessFunc(&h.nodes[j], &h.nodes[i])
- }
- func (h *nodeMaxHeap) Push(x interface{}) {
- h.nodes = append(h.nodes, x.(NodeInfo))
- h.length++
- }
- func (h *nodeMaxHeap) Pop() interface{} {
- h.length--
- // return value is never used
- return nil
- }
|