組合せとグラフの理論(塩田)教材 プログラム編 ( Shift-JIS 版 )

はじめに

  • 基本的なグラフアルゴリズムをC言語で実装したサンプルプログラムと、その実行例をアップしています。
  • グラフは隣接行列で表現しています。
  • 文字コードは Shift-JIS コードを使っています。
  • gcc をお使いのときは文字コードを指定するオプションを付けてください:
    gcc --input-charset=cp932 hoge.c
  • EUC 版はこちら / UTF-8 版はこちら
  • ブラウザ画面からコピー&ペーストすると文字コードの関係で正しく動作しないことがあります。 使用するときは「リンク先を保存」などで保存してください。
  • プログラムは更新することがありますので、動作がおかしいときは最新版を download してください。

関数定義部

  • 基本的な関数の定義部 : graph.h
  • 有向グラフ関数定義部( dijkstra.c, eulerdigraph.c, debruijn.c で引用 ) : digraph.h
  • 迷路アルゴリズム関数定義部( maze.c で引用 ) : maze.h
  • 多項式関数定義部( chromatic.c で引用 ) : graphpol.h
  • 彩色多項式・彩色数関数定義部( chromatic.c で引用 ) : chromatic.h
  • 平面性判定関数定義部( planarq.c で引用 ) : planar.h

オイラーグラフ

有向オイラーグラフ

ドゥブリュエイン列

探索木

迷路

  • 広さ優先探索を用いて迷路を解くプログラム : maze.c実行例

最短路問題

郵便配達員問題

最小連結子問題

平面性

彩色

ネットワーク

連結成分分解

  • 単純無向グラフを連結成分に分解するプログラム : decomp.c

ブロック分解

戻る