どのように、どのようなグラフの次の実装ごとにhasConnection()
機能を実装するための最も効率的な方法だろうとの間の接続を確認します。これは、2つの頂点の間に接続があるかどうかをチェックできる関数を意味します。 hasConnection(vertex1, vertex2)
パイソン - グラフを実装し、エッジと頂点
実装A:未分類の隣接リストの辞書で表されます。例えば。ソートされた隣接の辞書を含む辞書で表さ:グラフは、頂点A、B、CおよびD Aは、BとDに接続されていた場合、これは
{A:[D, B], B:[A], C:[], D:[A]}
実装Bとして示されるであろうリスト。内側の辞書には 'adjacentVertices'という名前のキーがあります。例えば。鍵有する辞書を含む辞書で表さ:グラフは、頂点A、B、CおよびD Aは、BとDに接続されていた場合、これは
{A:{adjacentVertices:[B, D]}, B:{adjacentVertices:[A]}, C:{adjacentVertices:[]}, D:{adjacentVertices:[A]}}
実施Cとして示されるであろう値 'ヌル'。キーは、隣接する頂点を表します。例えば。グラフは、頂点A、B、CおよびD Aは、これが最終的に
{A:{B:null, D:null}, B:{A:null}, C:{}, D:{A:null}}
として示されるであろうBおよびDへの接続を有している場合、コードが実装ごとになるように何を必要としますhasConnection()
の最も効率的なバージョンはどれですか?
が接続されているペアのセットを持つことです。 – lejlot
正直なところ私はちょうど何かを思い出していないか、正しくそれを知ってるかどうか、それは上のブロックになってきたように見えます。私が考えているのは、辞書とリストを使って検索することと、おそらくforループを検索することの違いですが、私は完全にはずれている可能性があります。 – user7262738
実際lejlotが、それは、しかし実装ではなく、ペアごとに申し訳ありませんする必要があります。ありがとう – user7262738