数据结构和算法 - 如何用java实现链式堆?
怪我咯
怪我咯 2017-04-17 17:33:14
0
1
402

我知道堆是一个特殊的二叉树,但是为什么每次向堆中插入元素时都需要重排序?
用java代码如何实现?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
迷茫

堆不光有二元堆, 還有三叉堆等等多叉堆, 之所以每次向堆中插入元素都要重新排序, 是因為堆本身的特性, 如果一個二叉堆是最小堆, 那麼每個節點的兩個子節點都應該比自己大, 當堆中所有結點都小於等於它的兩個子節點時, 此時堆有序; 當你插入一個新節點,就會破壞這種堆有序的狀態, 所以需要重新排序. 至於java的實現版本上網找吧, 很好找的, JDK的堆實現是java.util.PriorityQueue類, 題主可以去看看

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!