プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造におけるDFSとBFSのアプリケーション


ここでは、グラフのDFSアルゴリズムとBFSアルゴリズムのさまざまなアプリケーションを確認します。

DFSまたは深さ優先探索はさまざまな場所で使用されます。一般的な使用法は次のとおりです-

  • 重み付けされていないグラフでDFSを実行すると、すべてのペアの最短パスツリーに対して最小スパニングツリーが作成されます
  • DFSを使用して、グラフ内のサイクルを検出できます。 BFS中に1つのバックエッジを取得する場合、1つのサイクルが必要です。
  • DFSを使用して、指定された2つの頂点uとvの間のパスを見つけることができます。
  • トポロジカルソートは、ジョブ間の特定の依存関係からジョブをスケジュールするために使用されます。トポロジカルソートは、DFSアルゴリズムを使用して実行できます。
  • DFSを使用すると、グラフの強連結成分を見つけることができます。各頂点から他のすべての頂点へのパスがある場合、それは強く結びついています。

DFSと同様に、BFS(幅優先探索)もさまざまな状況で使用されます。これらは以下のようなものです-

  • ビットトレントのようなピアツーピアネットワークでは、BFSを使用してすべての隣接ノードを検索します
  • 検索エンジンクローラーは、インデックスを作成するためにBFSを使用します。ソースページから始めて、新しいページを取得するためにその中のすべてのリンクを見つけます
  • GPSナビゲーションシステムの使用BFSは、近隣の場所を見つけるために使用されます。
  • ネットワーキングでは、一部のパケットをブロードキャストする場合、BFSアルゴリズムを使用します。
  • パスファインディングアルゴリズムは、BFSまたはDFSに基づいています。
  • BFSは、ネットワーク内の最大フローを見つけるためにFord-Fulkersonアルゴリズムで使用されます。

  1. データ構造における二分木表現

    ここでは、コンピュータのメモリでバイナリツリーを表現する方法を説明します。表現するには2つの異なる方法があります。これらは配列とリンクリストを使用しています。 このようなツリーが1つあるとします- 配列表現は、レベル順の方法を使用して要素をスキャンすることにより、ツリーデータを格納します。したがって、ノードをレベルごとに格納します。一部の要素が欠落している場合は、空白のままにします。上記のツリーの表現は以下のようになります- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 5

  2. スマートフォンとアプリケーションはどのようにあなたの場所を知っていますか?

    あなたはおそらく、あなたのデバイスが彼らの位置を与えることができることを知っているでしょう。デバイスを紛失したり盗まれたりした場合は、これらの機能を使用してデバイスを復元できます。デバイスを持っている場合は、友だちや家族にあなたの居場所を知らせたり、一部のアプリケーションやウェブサイトを知らせたりすることができます。 多くの人が、これらの機能のセキュリティとプライバシーのリスクに疑問を投げかけています。他の人は彼らの有用性を賞賛します。これらの機能がどのように機能するかを理解すると、これらの機能についてどのように感じ、どのように使用するかを理解しやすくなります。 では、モバイルデバイスはど