RutaGrafos.lsp



(setq Nodos '(a b c d e f))
(setq Conexion '((i a) (i c) (a b) (a c) (c d) (b d) (d f) ) )
(setq Ruta nil)

(defun inicia(inicio final)
	(if (Es_Adyacente inicio final)
		(setq Ruta (list inicio final))
		(extiende inicio final)
	)
	(Salida)
)

(defun extiende (X Y)
	(print 'extender)
)

(defun Salida ()
	(print "Ya es una ruta correcta")
)

(defun Es_Adyacente(X Y)
	(setq Lazo (list X Y))		; se genera como lazo
	(setq Resp nil)
	(dolist (Par Conexion)
	  	; (print Par)
		(if (Iguales Par lazo) (setq Resp t) )
	)
	Resp
)

(defun Iguales (L1 L2)
	(if (and (or (eq (car L1) (car L2)) (eq (car L1) (cadr L2)))
	         (or (eq (cadr L1) (car L2)) (eq (cadr L1) (cadr L2)))
	    )
		t nil
	)
)