fork download
  1. """
  2. Consideremos este grafo no dirigido:
  3.  
  4. 0 --- 1 --- 2
  5. |
  6. |
  7. 3
  8. """
  9.  
  10. V = 4 # Cantidad de nodos (vertices)
  11.  
  12. # Creamos la matriz llena de ceros, el espacio es O(V^2)
  13. adj_matrix = [[0]*V for _ in range(V)]
  14.  
  15. print("Matriz de adyacencia antes de:")
  16. for i in adj_matrix: print(i)
  17.  
  18. # Marcamos en 1 las aristas (si fuera un grafo con peso/costo podriamos poner el peso en lugar del 1)
  19. adj_matrix[0][1] = 1
  20. adj_matrix[1][0] = 1 # no dirigido (bidireccional)
  21.  
  22. adj_matrix[1][2] = 1
  23. adj_matrix[2][1] = 1 # no dirigido (bidireccional)
  24.  
  25. adj_matrix[1][3] = 1
  26. adj_matrix[3][1] = 1 # no dirigido (bidireccional)
  27.  
  28. print("Matriz de adyacencia despues de:")
  29. for i in adj_matrix: print(i)
  30.  
  31. # Buscar arista (a,b) es O(1)
  32. a = 0
  33. b = 3
  34. print("Existe arista de A hasta B?", adj_matrix[a][b]==1)
  35.  
  36.  
Success #stdin #stdout 0.02s 9104KB
stdin
Standard input is empty
stdout
Matriz de adyacencia antes de:
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
Matriz de adyacencia despues de:
[0, 1, 0, 0]
[1, 0, 1, 1]
[0, 1, 0, 0]
[0, 1, 0, 0]
Existe arista de A hasta B? False