Graphs - AndrewMZ6/python_cheat_sheet GitHub Wiki

Creating adjacency matrix for a given graph

graph = {	'A':['B', 'C'], 
		'B':['C', 'D'],
		'C':['D'], 
		'D':['C'], 
		'E':['F'], 
		'F':['C']
        }

adj_matrix = [[0 for i in range(len(graph))] for j in range(len(graph))]

keys = list(graph.keys())

for i in range(len(graph)):
	for j in graph[keys[i]]:
		if j:
			k = keys.index(j)
			adj_matrix[i][k] = 1


for i in range(len(keys)):
	adj_matrix[i].insert(0, keys[i])

keys.insert(0, '')
adj_matrix.insert(0, keys)

for i in adj_matrix:
	print(i)


# output
['', 'A''B''C''D''E''F']
['A', 0, 1, 1, 0, 0, 0]
['B', 0, 0, 1, 1, 0, 0]
['C', 0, 0, 0, 1, 0, 0]
['D', 0, 0, 1, 0, 0, 0]
['E', 0, 0, 0, 0, 0, 1]
['F', 0, 0, 1, 0, 0, 0]