聲明:本文完全沒有定量分析,需要定量分析的,請随便查閱一本資料結構的書籍或網頁。
二叉堆:擁有删除最大(小)權值節點以及插入任意節點操作,是一顆完全二叉樹,其完全性由插入和删除動作來保證。
先看看什麼是完全二叉樹,不過為了引出完全二叉樹的定義還要先看看什麼是滿二叉樹:所有葉子節點都在同一層的二叉樹,并且樹高h和節點數滿足:節點數目為 2*h-1。完全二叉樹就是:深度為h節點數目為n的完全二叉樹的每個節點都與深度為h的滿二叉樹的節點從1到n一一對應。
進一步看看插入和删除最值節點如何滿足二叉堆的完全性。先看插入,插入的初始位置應該是葉子節點,哪個葉子節點呢?是最後一層從左到右的下一個葉子節點,如下圖:
本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1274013