package main
import (
"container/heap"
"fmt"
)
type IntHeap []int
func (h IntHeap) Len() int {
return len(h)
}
func (h IntHeap) Less(i, j int) bool {
return h[i] < h[j]
}
func (h IntHeap) Swap(i, j int) {
h[i],h[j] = h[j],h[i]
}
func (h *IntHeap) Push(x interface{}) {
*h = append(*h,x.(int))
}
func (h *IntHeap) Pop() interface{} {
length := len(*h)
last := (*h)[length-1]
*h = (*h)[0:length-1]
return last
}
func main() {
h := &IntHeap{3,8,5,2,4}
heap.Init(h)
heap.Push(h,7)
for h.Len() > 0{
fmt.Printf("%d\n",heap.Pop(h))
}
//2,3,4,5,7,8
}
golang 最小堆
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 引子:五分鐘玩轉(zhuǎn)面試考點(diǎn)-數(shù)據(jù)結(jié)構(gòu)系列,不會(huì)像那種嚴(yán)肅、古板的教科書般的博客文章,而是將晦澀難懂的概念和知識(shí)點(diǎn)盡可...
- 算法思路:(1)創(chuàng)建map[int]int,k為數(shù)值中元素,v表示出現(xiàn)的次數(shù),用map去重;(2)維護(hù)一個(gè)K個(gè)節(jié)點(diǎn)...
- (仿佛回到了當(dāng)年打比賽的時(shí)候呢 POJ 3013(Big Christmas Tree) 傳送門:http://p...
- 2021-04-16:擺放著n堆石子。現(xiàn)要將石子有次序地合并成一堆,規(guī)定每次只能選相鄰的2堆石子合并成新的一堆,并...
- 堆的數(shù)據(jù)結(jié)構(gòu)能夠使得堆頂總是維持最大(對(duì)于大根堆)或最小(對(duì)于小根堆),給定一個(gè)數(shù)組,對(duì)這個(gè)數(shù)組進(jìn)行建堆,則平均復(fù)...