显然我的老师认为,即使我们没有时间学习东西(也没有足够的例子),我们也应该继续前进,所以我现在需要知道如何在 clisp 中制作 Floyd-Warshall 和 Warshall 的算法。
正如我对 prolog 所做的那样,我的问题是从图中生成邻接矩阵,在这种情况下,它将是一个列表列表,例如:
((A B) (A C) (A D) (B C) (C D))
那应该产生:
((0 1 1 1) (1 0 1 9) (1 1 0 1) (1 9 1 0))
我有这个:
(defun floyd(graph)
(setf l (length graph))
(setf mat (matrix l graph))
)
(defun matrix(l graph)
(setf matrix (make-array (list l l)))
(dotimes (i l)
(dotimes (j l)
(if (= i j)
(setf (aref matrix i j) 0)
(setf (aref matrix i j) ???)
)
)
)
matrix
)
任何帮助是极大的赞赏。
另外,还有点题外话:如果我能解决我自己的问题,我是否应该回答自己以便得到答案?