Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,20 @@
|
|||
(defparameter *w* '((a (a b . 7) (a c . 9) (a f . 14))
|
||||
(b (b c . 10) (b d . 15))
|
||||
(c (c d . 11) (c f . 2))
|
||||
(d (d e . 6))
|
||||
(e (e f . 9))))
|
||||
|
||||
(defvar *r* nil)
|
||||
|
||||
(defun dijkstra-short-path (i g)
|
||||
(setf *r* nil) (paths i g 0 `(,i))
|
||||
(car (sort *r* #'< :key #'cadr)))
|
||||
|
||||
(defun paths (c g z v)
|
||||
(if (eql c g) (push `(,(reverse v) ,z) *r*)
|
||||
(loop for a in (nodes c) for b = (cadr a) do
|
||||
(unless (member b v)
|
||||
(paths b g (+ (cddr a) z) (cons b v))))))
|
||||
|
||||
(defun nodes (c)
|
||||
(sort (cdr (assoc c *w*)) #'< :key #'cddr))
|
||||
Loading…
Add table
Add a link
Reference in a new issue