以下のヒープショーを表すリストがあります。親の左右の子をヒープから印刷します。
L = [8,4,7,2,3,1]
私は入力に親の位置をユーザーに尋ねる関数を記述すると、親が持っていない場合、この関数は親、左の子と右の子またはfalseの値を出力します必要子供。
次のコードを試してみましたが、エラーが表示されます。ユーザーが位置入力として0を入力すると
position = int(input("Enter the position: "))
L = [8,7,2,3,1]
print("Parent:",heapList[position])
def children(L, position):
for i in L:
if L[2*i+1] not in L:
return False
else:
print("Left Child",L[2*i+1])
children(L, position)
出力例は次のようになります。
Parent: 8
Left child: 4
Right child: 7
あなたは '右の子をプリントアウトすることができる方法:7'あなたのスクリプト内の任意の場所にコードを書いていない間?第2に、 'i'が7に等しい' children'関数では、 'L [15]'に項目がないので 'list index of range'エラーを返します。あなたの 'L''リストには5つの項目しか含まれていないので、最大のインデックスは4です。 – arnold
私は目標が完全にわかりません - 親が8の場合は、左の子供は4歳ですか?何かあればそれは1でなければなりませんか? –
ここでループはなぜ必要ですか?あなたはコード内で正しい子をどこに印刷していますか? – Pavan