Nodos adyacentes en un grafo dirigido
Un grafo dirigido es como un grafo no dirigido, excepto que cada arista tiene una dirección desde un nodo de origen hasta un nodo de destino.

En este grafo, el nodo 0 es adyacente al nodo 1, pero el nodo 1 no es adyacente al nodo 0. Si el grafo no fuera dirigido, se vería así:

En un grafo dirigido, invertir una arista crea un grafo diferente:


La matriz de adyacencia de un grafo no dirigido es simétrica con respecto a su diagonal principal, pero la de un grafo dirigido no tiene que serlo. Un 1 en la fila i y la columna j significa que hay una arista desde el nodo i hasta el nodo j.

El grafo de la imagen puede representarse mediante esta matriz de adyacencia:
[[0, 1, 1, 0, 0], [0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 1], [1, 0, 0, 0, 0]]El nodo 1 no tiene aristas salientes, por lo que toda su fila contiene ceros. Un nodo sin aristas entrantes tendría una columna compuesta únicamente por ceros.
Instrucciones
Dada la matriz de adyacencia de un grafo dirigido y dos índices de nodo válidos, devuelve si el primer nodo es adyacente al segundo. Examina la celda ubicada en la fila de origen y la columna de destino; la dirección importa.
Ejemplos
adjacent([[0, 1, 1, 0, 0], [0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 1], [1, 0, 0, 0, 0]], 0, 1) # => True
adjacent([[0, 1, 1, 0, 0], [0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 1], [1, 0, 0, 0, 0]], 1, 0) # => FalseNotas
- Los grafos pueden tener hasta 25,000 nodos.
- El límite de tiempo es de 100 milisegundos, así que examina únicamente la celda solicitada.