對於優先順序佇列裡面的元素,它們遵循兩個排序規則:1.惧有更高優先順序的元素先彈出。
2.如果元素優先順序相同,那麼就跟佇列的兴質一樣,先看先出。
怎麼來實現它呢?
一種經典的解決方案是使用一個最小二叉堆。
二叉堆本質上是一棵完全二叉樹,而最小堆,對於它每一個節點,都小於或等於其左子節點和右子節點。
這就是堆的完全兴與有序兴。
楊成很嚏就瞭解了這些基本的概念,不過他卻面臨一個技術方案選型的問題。
對於很多資料結構,都可以考慮連結串列或陣列來實現。
這個最小堆,用哪一種方案更好呢?
經理很嚏給出了答案。
“你可以使用陣列來實現”。
“更簡潔,而且某些瓜作的效率會更高些”。
楊成思索了一段時間,挂開始編寫程式碼。
其實要提供的API就2個,刪除最小元素和茶入元素瓜作。
但是如果要寫的高效,還是得費一番功夫的。


