邻接矩阵/ Floyd / Warshall以Lisp表示

问题描述

|| 显然,我的老师认为,即使我们没有时间学习东西(也没有足够的例子),我们也应该继续前进,所以我现在需要知道如何使Floyd-Warshall's和Warshall's算法变得一帆风顺。 就像我在序言中所做的那样,我的问题是从图生成邻接矩阵,在这种情况下,它将是列表的列表,例如:
((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
)
任何帮助是极大的赞赏。 另外,还有种题外话:如果我可以解决自己的问题,我是否应该回答自己的问题?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)