2017-07-05 8 views
-4

enter image description hereこれは正しいですか? Minheap

こんにちは、これらのxが最小ヒープの正しい位置にあるのでしょうか?私は正しいですか?

+0

私はそれはプログラミングの問題ではありませんので、オフトピックとして、この質問を閉じるために投票していますが、それはコンピュータです科学の問題。 – gunr2171

答えて

0

3がその子供よりも大きいので、トップポジションは可能ではありません(その下位の場所は1または2です)。 2と3は、第3レベルにあるために1

の子供を兄弟可能性があるため

セカンドレベルが可能であり、図3は、直接の親のための2を持っている必要があり、そして何も祖父母のための1でしょうそれ以外の場合は

3より小さい3つの祖先が3つ必要なため、第4レベルは不可能です。

リスト形式は、ツリー形式からの直接的な変換です。それで、それもマッチです。

9!のすべての置換をミニヒープに挿入し、3が見つかった場所を観察することで経験的にこれを証明できます。

from heapq import heapify 
from itertools import permutations 

has_three = [False] * 9 
for t in permutations('123456789'): 
    s = list(t) 
    heapify(s) 
    i = s.index('3') 
    has_three[i] = True 
print(has_three) 

そして結果は次のとおりです:ここにあることないPythonスクリプトである

[False, True, True, True, True, True, True, False, False] 
関連する問題