<
# Función para realizar DFS en un grafo dado
lista = []
def dfs(graph, node, visited, num):
num += str(node)
visited[node] = True
# Recorrer todos los nodos adyacentes al nodo actual
for neighbor in graph[node]:
if not visited[neighbor]:
# Si el vecino no ha sido visitado, realizar DFS en él
dfs(graph, neighbor, visited, num)
if len(graph[node]) == 1:
lista.append(int(num))
return False
# Ejemplo de uso
if __name__ == "__main__":
# Grafo representado como listas de adyacencia
graph = {
0: [1, 2],
1: [0, 3, 4],
2: [0, 5],
3: [1],
4: [1,6],
5: [2],
6:[4,7],
7:[6,8],
8:[7]
}
# Inicializar un arreglo para llevar un seguimiento de los nodos visitados
visited = [False] * len(graph)
# Realizar DFS desde el nodo 0
dfs(graph, 0, visited,"")
print(sum(lista))
>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.