2017-06-01 15 views
0

私はPythonで新しく、バックトラックアルゴリズムを学びたいと思っています。私はいくつかのチュートリアルを見て、私はこのコードを作成しました:Python Bkt - 範囲外のリストインデックス

x = [] 
pod = [] 
class def_pod: 
    ins1 = 0 
    ins2 = 0 
    def __init__(self, name): 
     self.name = name 
ins_start = int(input("Insula de start: ")) 
n = int(input("Numar de poduri: ")) 
def Plimbare (insula_crt, k): 
    if n==k: 
     print(x) 
    else: 
     for i in range(0,n-1): 
      if POSIBIL(i,k,insula_crt): 
       x[k] = i 
       if insula_crt == pod[i].ins1: 
        ins=pod[i].ins2 
       else: 
        ins=pod[i].ins1 
       Plimbare(ins,k+1) 

def POSIBIL (alfa,k,ins_crt): 
    for j in range(0,n-1): 
     if x[j] == alfa: 
      return False 
    return pod[alfa].ins1 == ins_crt or pod[alfa].ins2 == ins_crt 

print ("Lansare executie program: \n") 
Plimbare(ins_start,0) 

をしかし、私は私の配列が範囲外であり、私はこれを解決するために何ができるのか分からないという事実によってリンクされ、多少の誤差があります。手伝って頂けますか?私は私の質問は、それほど関連性がない場合は申し訳ありませんが、私が言ったように、私は新たなんだ..コメントで解決

+0

初めてご 'POSIBIL()'関数'x'は空のリストであり、x [k] = iの代わりに – kuro

+0

のリストのn番目の要素にアクセスしたいのですが、x.append(i)を使用してください。 –

+0

ありがとうございました。私は今問題が解決したと思う。 :) –

答えて

0

First time your POSIBIL() function called, x is empty list and you still want to access upto nth element in that list 

instead of x[k] = i, use x.append(i) – Jay Parikh 
関連する問題