エッジがない場合は、問題上有り得ない値に設定します。例では∞としていますが、プログラムでは非常に大きな値に設定しておくと便利な場合が多いです。エッジがない場合は、非常に大きな値に設定します。関係を定数時間でチェックすることができるエッジの追加や削除が簡単かつ効率的(定数時間)ノードの数が増えるとメモリをかなり消費する。グラフグラフはコンピュータ上で表されるデータ構造の一種です。コンピュータの中で、問題に応じたグラフ構造を効率的に表現し操作されるようなプログラムを実装しなければなりません。lists)による表現があります。これらの方法とその特徴を簡単に紹介します。グラフグラフの種類には大きく分けて4つあります。友達関係をグラフにした例です。この例ではエッジに方向をもたせていません。「友達の友達は友達としたとき、A君とB君は友達ですか?」や「いくつの友達グループがありますか?」などの問題が考えられます。物事の手順をグラフにした例です。朝起きてから学校に行くまでの簡単な手順を示していますが、このグラフから様々な要素が読み取れます。朝起きてから朝食を食べなくても学校へ行けますが、着替えなければ学校には行けないことが分かります。起きて→着替えて→学校へ行く、というのがこの手順の最短経路となります。各ノードが市町を表し、エッジが市町を行き来するのにかかる時間を表しています(架空のもの)。ある町からある町への最短経路を求めたいなどの類の問題はよくあります。ここで取り上げたものは、ほんの例でしかありません。「すべての問題はグラフで表せる」と言われるほど、グラフ構造は様々な問題で応用されます。グラフグラフ(Graph)とは「対象の集合と、それらのつながりの集合」を表すためのデータ構造で、様々な問題に応用されます。現実世界のあらゆる問題をモデル化することができるので、グラフに関する重要なアルゴリズムが数多く存在します。簡単なグラフの例を以下に示します。「対象」はノード(node)またはバーテックス(vertex)と呼ばれ、上図の円に相当します。「つながり」はノードとノードの関係を表し、エッジ(edge)と呼ばれ、上図で円と円を結んでいる線に相当します。グラフには様々な種類があり、問題によって応用の方法も違ってきます。masimarock。