Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2015, 03:21
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Obtener todas las rutas posibles de un mapa de grafos

Asi, en principio, la funcion recursiva tendría una signature del tipo

function getPath($startNode, $endNode, $availableNodes, $connections, $currentPath, & $solutions)

La llamada inicial tiene
$startNode=<nodo inicial>,
$endNode=<nodo final>,
$availableNodes=<todos>,
$connections=<array de conexiones entre nodos>,
$currentPath=array(),
$solutions=array()

Las llamadas recursivas se realizan con:
$startNode=<nodo iactual>,
$endNode=<nodo final>, <-- fijo
$availableNodes=<aquellos no usados>,
$connections=<array de conexiones entre nodos>, <--- fijo
$currentPath=array(<nodos ya usados>)
$solutions=array(<arrays de soluciones>)

Si una llamada recursiva llega al nodo final, mete el valor de $currentPath dentro de $solutions.

Otra posibilidad es no pasar el array $solutions, y devolverlo como valor de retorno de la funcion, o null si no hay caminos entre $start y $end