
uj5u.com熱心網友回復:
您提供的二進制堆對應于以下層次結構:
tree = [2,4,4,4,None,1,3,None,None,5,None,None,None,None,5,4,4]
printHeapTree(tree)
2
/ \
4 4
/ / \
4 1 3
\
5
在該樹中,只有專案值1的祖先大于其自身。其他 6 個節點是好的,因為它們沒有比自己大的祖先(將根計算為好的)。
請注意,串列中的某些值無法訪問,因為它們的父級為空(無),因此它們不是樹的一部分(盡管這可能是復制/粘貼錯誤)。如果我們用其他東西替換這些 None 值,使它們成為樹的一部分,我們可以看到無法訪問的節點在層次結構中的位置:
t = [2,4,4,4,'*', 1,3,'*',None, 5,None, None,None,None,5,4,4]
printHeapTree(t)
2
__/ \_
4 4
/ \ / \
4 * 1 3
/ / \
* 5 5
/ \
4 4
這很可能是 8(不將根算為好)與 6(將根算為好)的結果之間的差異的來源。
您可以在此處找到 printHeapTree() 函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/375454.html
