C++判斷一個序列是否爲堆(最大堆、最小堆)

1、如何判斷一個序列是不是堆? 把這個序列看成是數組型的二叉樹,如果根節點是i,左子數是2*i,右子數是2*i+1。 2、堆分爲最大堆和最小堆。 (1)最大堆 以{100,60,70,50,32,65}爲例分析: 最大堆中所有父節點都比左子樹大,比右子數小,畫成堆形式如下:  (2)最小堆 比如{32,50,60,70,100,65}爲例分析: 最小堆中所有父節點都比左子樹小,比右子數大,畫成堆形
相關文章
相關標籤/搜索