Skip to content

Instantly share code, notes, and snippets.

@thbighead
Created April 17, 2017 00:55
Show Gist options
  • Save thbighead/72abed70c312462822c6565ae92bd3b4 to your computer and use it in GitHub Desktop.
Save thbighead/72abed70c312462822c6565ae92bd3b4 to your computer and use it in GitHub Desktop.
Criador de grafos em representacao de matriz de adjacencias feito com Python
def cria_grafo(lista_de_vertices, lista_de_arestas):
grafo = {}
for vertice in lista_de_vertices:
grafo[vertice] = []
for aresta in lista_de_arestas:
grafo[aresta[0]].append(aresta[1])
return grafo
lista_de_vertices = ['a', 'b', 'c', 'd', 'e', 'f']
lista_de_arestas = [('a', 'b'), ('b', 'a'), ('b', 'c'), ('c', 'b'), ('c', 'e'), ('e', 'a'), ('e', 'b'), ('e', 'c'), ('e', 'd'), ('d', 'a'), ('d', 'e'), ('e', 'f'), ('f', 'e'), ('b', 'e'), ('a', 'd'), ('a', 'e')]
grafo = cria_grafo(lista_de_vertices, lista_de_arestas)
@edivaniap
Copy link

neste caso não seria uma lista de adjacência?

@jvsajv
Copy link

jvsajv commented Feb 6, 2021

neste caso não seria uma lista de adjacência?

Isso mesmo, talvez o autor tenha se confundido pois uma lista de lista (ou array de array) é chamado de matriz, mas se você der um print no "grafo" você vê uma list de adjacência!

@IsaacRamos1
Copy link

Outro detalhe, o código acima cria uma lista de adjacência para grafos direcionados. Tomei a liberdade de caso queria usar um grafo não-direcionado, adicionar:
6 grafo[aresta[0]].append(aresta[1])
7 grafo[aresta[1]].append(aresta[0])
8 return grafo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment