-1
私のコードは、第1のユーザ入力を取り込む隣接行列に変換することができない場合: 隣接リストデータを転送し、
=グラフn
:この場合file
における頂点の数=ファイル
を計算するために、私のファイルが含ま.txtファイルであります
0 1
2 1
0 2
1 3
私のコードは、これを出力[[1, 2], [0, 2, 3], [1, 0], [1]]
で隣接リストに変換することに成功しました。しかし問題は、それを隣接行列に変換することです。私は私のコードの主な問題は、この行であることを認識しています:
n = int(input("Enter the number of vertices: ")) ## E.g. 4
file = input("Enter the filename: ") ## E.g. graph.txt
vertices = []
matrix = [] ## define list
for x in range(n):
matrix.append([0]*n]) ## append a list for n, e.g. if n = 4 then [[][][][]]
vertices.append([])
f =open(file)
z = 0
for line in f: ##loop statement until no more line in file
line = line.split() ## turn every line into a list
z+=1
for y in range(len(line)):
line[y] = line[y].strip() ## remove spaces
line[y] = int(line[y]) ## converts line list into integer
## add value of line into main list
vertices[line[0]].append(line[1])
vertices[line[1]].append(line[0])
for z in range(len(matrix)):
for x in range(len(vertices)):
matrix[z-1][vertices[x]] = 1
print(vertices)
print(matrix)
:
または:パフォーマンスを実現するためには、
vertices[z]
の名前を作成するために、原則的には良いですか?そのループの 'z'の頭文字は0です。 –