グラフ(Graph)は、データ要素間の複雑な二項関係を数学的・論理的に表現するための汎用的な非線形データ構造です。構成要素は、データ本体を表す「頂点(ノード/バーテックス:Vertex)」と、頂点同士の結びつきを示す線である「辺(エッジ:Edge)」の2つです。グラフには、辺に方向性(矢印)がある「有向グラフ」と、方向性のない「無向グラフ」があります。有向グラフは「AさんからBさんへの一方通行のフォロー」や「道路の一方通行制限」、無向グラフは「AさんとBさんの双方向の友人関係」などを表すのに使われます。また、辺に「重み(コスト、距離、料金など)」と呼ばれる数値を割り当てた「重み付きグラフ」は、最短経路を求める問題(ナビゲーションシステムの経路検索など)において不可欠なモデルです。プログラム上での実装方法としては、頂点間の接続の有無を2次元配列で表現する「隣接行列」や、各頂点から接続している頂点をリストで繋ぐ「隣接リスト」の2つが代表的です。
試験でのポイント