2020-12-07 15:00:24 +08:00
|
|
|
|
/*
|
|
|
|
|
|
* @Author : huangzj
|
|
|
|
|
|
* @Time : 2020/12/2 15:39
|
|
|
|
|
|
* @Description:
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
2020-12-16 11:52:50 +08:00
|
|
|
|
package testContainer
|
2020-12-07 15:00:24 +08:00
|
|
|
|
|
|
|
|
|
|
type Person struct {
|
|
|
|
|
|
Name string //名字
|
|
|
|
|
|
Age int //年龄
|
|
|
|
|
|
Money float64 //身价
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type heapTool []*Person
|
|
|
|
|
|
|
|
|
|
|
|
func (h *heapTool) Less(i, j int) bool {
|
|
|
|
|
|
return (*h)[i].Age < (*h)[j].Age
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (h *heapTool) Swap(i, j int) {
|
|
|
|
|
|
(*h)[i], (*h)[j] = (*h)[j], (*h)[i]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (h *heapTool) Len() int {
|
|
|
|
|
|
return len(*h)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (h *heapTool) Pop() (v interface{}) {
|
|
|
|
|
|
*h, v = (*h)[:h.Len()-1], (*h)[h.Len()-1]
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (h *heapTool) Push(v interface{}) {
|
|
|
|
|
|
*h = append(*h, v.(*Person))
|
|
|
|
|
|
}
|