Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,62 +0,0 @@
|
|||
(defvar path-list '((a b 7)
|
||||
(a c 9)
|
||||
(a f 14)
|
||||
(b c 10)
|
||||
(b d 15)
|
||||
(c d 11)
|
||||
(c f 2)
|
||||
(d e 6)
|
||||
(e f 9)))
|
||||
|
||||
(defun calculate-shortest-path (path-list)
|
||||
(let (shortest-path)
|
||||
(dolist (path path-list)
|
||||
(add-to-list 'shortest-path (list (nth 0 path)
|
||||
(nth 1 path)
|
||||
nil
|
||||
(nth 2 path))
|
||||
't))
|
||||
|
||||
(dolist (path path-list)
|
||||
(dolist (short-path shortest-path)
|
||||
|
||||
(when (equal (nth 0 path) (nth 1 short-path))
|
||||
(let ((test-path (list (nth 0 short-path)
|
||||
(nth 1 path)
|
||||
(nth 0 path)
|
||||
(+ (nth 2 path) (nth 3 short-path))))
|
||||
is-path-found)
|
||||
|
||||
(dolist (short-path1 shortest-path)
|
||||
(when (equal (seq-take test-path 2)
|
||||
(seq-take short-path1 2))
|
||||
(setq is-path-found 't)
|
||||
(when (> (nth 3 short-path1) (nth 3 test-path))
|
||||
(setcdr (cdr short-path1) (cddr test-path)))))
|
||||
|
||||
(when (not is-path-found)
|
||||
(add-to-list 'shortest-path test-path 't))))))
|
||||
|
||||
shortest-path))
|
||||
|
||||
(defun find-shortest-route (from to path-list)
|
||||
(let ((shortest-path-list (calculate-shortest-path path-list))
|
||||
point-list matched-path distance)
|
||||
(add-to-list 'point-list to)
|
||||
(setq matched-path
|
||||
(seq-find (lambda (path) (equal (list from to) (seq-take path 2)))
|
||||
shortest-path-list))
|
||||
(setq distance (nth 3 matched-path))
|
||||
(while (nth 2 matched-path)
|
||||
(add-to-list 'point-list (nth 2 matched-path))
|
||||
(setq to (nth 2 matched-path))
|
||||
(setq matched-path
|
||||
(seq-find (lambda (path) (equal (list from to) (seq-take path 2)))
|
||||
shortest-path-list)))
|
||||
(if matched-path
|
||||
(progn
|
||||
(add-to-list 'point-list from)
|
||||
(list 'route point-list 'distance distance))
|
||||
nil)))
|
||||
|
||||
(format "%S" (find-shortest-route 'a 'e path-list))
|
||||
Loading…
Add table
Add a link
Reference in a new issue