Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun make-list-from-file (filename)
- (with-open-file (in filename)
- (loop for line = (read-line in nil nil)
- while line
- collect (read-from-string (concatenate 'string "(" line
- ")")))))
- (defun maximum (list)
- (reduce #'max list))
- (defun create_reversed_graph (graf maks)
- (let ((rev_graf (make-array (+ maks 1) :initial-element '())))
- (let ((number_row 1))
- (loop for x in graf do
- (loop for y in x do
- (setf (aref rev_graf y) (nconc (aref rev_graf y) (list number_row)))
- ;; (print number_row)
- )
- (setq number_row (+ number_row 1))
- )
- )
- rev_graf
- )
- )
- (defparameter maks 'integer)
- (defparameter odleglosc 0)
- (defparameter poprzedni 0)
- (defparameter rev_graf 0)
- (defun szukaj (x y)
- "Funkcja zwraca ciąg wierzchołków i linii będących najkrótszą ścieżką"
- (let ((graf (make-list-from-file "test.txt")))
- (setq maks (maximum (mapcar #'maximum graf)))
- (setq rev_graf (create_reversed_graph graf maks))
- (setq odleglosc (make-array (+ maks 1) :initial-element -1))
- (setq poprzedni (make-array (+ maks 1) :initial-element 0))
- (setf (aref odleglosc x) 0)
- (print rev_graf)
- )
- )
- (szukaj 5 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement