1 (in-package metabang.graph)
4 (defun is-connected-p (g)
6 (cl-graph::breadth-first-visitor g (first-item g) (lambda (v)
11 (let ((g (make-container 'graph-container))
13 (loop for v in '(a b c d e) do
15 (loop for (v1 . v2) in '((a . b) (a . c) (b . d) (c . e)) do
16 (add-edge-between-vertexes g v1 v2))
20 (let ((g (make-container 'graph-container))
22 (loop for v in '(a b c d e) do
24 (loop for (v1 . v2) in '((a . b) (a . c) (b . d)) do
25 (add-edge-between-vertexes g v1 v2))
36 nearest-common-descendent
42 all-previous-vertexes*
45 add-edge doesn't use force-new? or other args
47 I'd like to be able to (setf (edges g a b) c) or something
49 pull id-pools from AFS to use for graph and edge id's
52 ;;; ---------------------------------------------------------------------------
54 ok - do vertexes know their graph? edges their vertexes?
55 ok - edges can be defined 'generically'
56 ok - in-undirected-cycle-p uses loop instead of iterate-vertexes