ComenzarEmpieza gratis

Camino más corto III

¡Este es el ejercicio final de este trío! Ahora vas a completar el problema escribiendo el código que devuelve False si no hay un camino entre dos nodos.

Este ejercicio forma parte del curso

Introducción al análisis de redes en Python

Ver curso

Instrucciones del ejercicio

  • Comprueba si la cola se ha vaciado. Puedes hacerlo inspeccionando el último elemento de la cola con [-1].
  • Coloca la sentencia return adecuada para indicar si hay un camino entre estos dos nodos.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

def path_exists(G, node1, node2):
    """
    This function checks whether a path exists between two nodes (node1, node2) in graph G.
    """
    visited_nodes = set()
    queue = [node1]

    for node in queue:
        neighbors = list(G.neighbors(node))
        if node2 in neighbors:
            print('Path exists between nodes {0} and {1}'.format(node1, node2))
            return True
            break

        else:
            visited_nodes.add(node)
            queue.extend([n for n in neighbors if n not in visited_nodes])

        # Check to see if the final element of the queue has been reached
        if node == ____:
            print('Path does not exist between nodes {0} and {1}'.format(node1, node2))

            # Place the appropriate return statement
            return ____
Editar y ejecutar código