グラフ データ構造のガイド

グラフ データ構造のガイド

有能なプログラマーは、データ構造とアルゴリズムをしっかりと理解している必要があります。技術面接では、多くの場合、問題解決能力と批判的思考力が試されます。





グラフは、プログラミングにおける多くの重要なデータ構造の 1 つです。ほとんどの場合、グラフを理解し、グラフに基づく問題を解決することは容易ではありません。





最近netflixで視聴したものをどのように削除しますか?
今日のメイク動画

グラフとは何ですか?グラフについて知っておくべきことは何ですか?





グラフとは

グラフは、それらを接続するエッジを持つノード (または頂点) を持つ非線形データ構造です。すべてのツリーはグラフのサブタイプですが、すべてのグラフがツリーであるとは限りません。グラフは、ツリーの元となったデータ構造です。

優れたWindowsエクスペリエンスインデックスとは
  グラフの視覚的表現

できますが JavaScript でデータ構造を構築する および他の言語では、さまざまな方法でグラフを実装できます。最も一般的なアプローチは次のとおりです。 エッジ リスト 隣接リスト 、 と 隣接行列 .



グラフを表現するためのカーン アカデミー ガイド は、グラフの表現方法を学習するための優れたリソースです。

グラフにはさまざまな種類があります。一般的な違いの 1 つは、 指示された 無向 グラフ;これらは、コーディングの課題や実際の用途でよく出てきます。





グラフの種類

  1. 有向グラフ: すべてのエッジに方向があるグラフ。 有向グラフ。   有向グラフ
  2. 無向グラフ: 無向グラフは双方向グラフとも呼ばれます。無向グラフでは、エッジの方向は重要ではなく、走査は任意の方向に進むことができます。
  3. 加重グラフ: 加重グラフは、ノードとエッジに値が関連付けられているグラフです。ほとんどの場合、この値はそのノードまたはエッジを探索するコストを表します。
  4. 有限グラフ: 有限数のノードとエッジを持つグラフ。
  5. 無限グラフ: 無限の数のノードとエッジを持つグラフ。
  6. 自明なグラフ: ノードが 1 つだけあり、エッジがないグラフ。
  7. 単純なグラフ: グラフのノードの各ペアを 1 つのエッジのみが接続する場合、それは単純グラフと呼ばれます。
  8. ヌル グラフ: ヌル グラフは、ノードを接続するエッジがないグラフです。
  9. マルチグラフ: マルチグラフでは、少なくともノードのペアがそれらを接続する複数のエッジを持っています。マルチグラフでは、自己ループはありません。
  10. 完全なグラフ: 完全なグラフは、すべてのノードがグラフ内の他のすべてのノードに接続されているグラフです。としても知られています。 完全なグラフ .
  11. 疑似グラフ: グラフの他の辺とは別に自己ループを持つグラフを疑似グラフと呼びます。
  12. 通常のグラフ: 通常のグラフは、すべてのノードの次数が等しいグラフです。つまり、すべてのノードには同じ数の隣接ノードがあります。
  13. 接続されたグラフ: 連結グラフは、任意の 2 つのノードが接続されている任意のグラフです。つまり、グラフの 2 つのノードごとに少なくとも 1 つのパスを持つグラフです。
  14. 切断されたグラフ: 非接続グラフは、接続グラフの正反対です。切断されたグラフでは、グラフのノードをリンクするエッジはありません。 ヌル グラフ。
  15. 循環グラフ: 巡回グラフは、少なくとも 1 つのグラフ サイクル (開始点で終了するパス) を含むグラフです。
  16. 非巡回グラフ: 非巡回グラフは、循環をまったく持たないグラフです。有向または無向のいずれかです。
  17. サブグラフ: サブグラフは派生グラフです。これは、別のグラフのサブセットであるノードとエッジから形成されたグラフです。