next up previous
Next: 6.2 基本関数 Up: 6 グラフ Previous: 6 グラフ

6.1 グラフの記述

グラフは,リストデータを用いれば容易に表現できるが, グラフの頂点に付加的な情報を与えたい場合に構造体を用いる方法, 辺の数がノードの数に比べて大きい場合に配列やハッシュ法を用いる 方法などLisp処理系のデータを活用することが必要になる場合もある. 図7に示すようなグラフに対して,辺のリスト (*graph1*),隣接点リストのリスト(*graph2*)の例を示す.
図 7: グラフの例
\includegraphics[width=7cm]{/home/inaba/eps/lecture/fig/searchspace.eps}
> (setq *graph1*
      '((s a) (s d) (a b) (a d)
        (b c) (b e) (d e) (e f)))
((s a) (s d) (a b) (a d)
 (b c) (b e) (d e) (e f))

> (setq *graph2*
    '((s . (a d))
      (a . (s b d))
      (b . (a c e))
      (c . (b))
      (d . (s a e))
      (e . (b d f))
     (f . (e))))
((s a d) (a s b d) (b a c e) (c b)
 (d s a e) (e b d f) (f e))


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