next up previous
Next: 7 グラフ探索 Up: 6 グラフ Previous: 6.4 隣接点リスト

6.5 隣接点リスト集合への変換

*graph1*から,隣接点リストであらわした *graph2*を作る関数elist2alistは,これらを組み合わせて
(defun elist2alist (g)
  (mapcar
   #'(lambda (v)
       (adjacency-list-aux v g))
   (vertex-list g)))
と定義すれば,

> (elist2alist *graph1*)
((d s a) (s d a b) (b c) (a e b c)
 (e f) (s e a d) (b f d e))
となる.この結果が*graph2*と同じかどうかを 調べるには,これらが集合の集合になっていることから 集合の集合が等しいことを調べる手続きを作ればよいことに なる.実際,

> (set-set=  *graph2* (elist2alist *graph1*))
t
となって,*graph2*と*graph1*を elist2alistしたものは同じものを指している ことがわかる.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日