グラフは、一連の 頂点 (ノードとも呼ばれます) とそれらの間の関係 (またはエッジ) を表す非線形データ構造です。頂点はエンティティまたはオブジェクトを表し、edges は頂点間の関係または接続を表します。グラフを使用すると、ソーシャル ネットワーク、交通システム、情報フローなど、さまざまな種類の関係をモデル化できます。
グラフには、有向グラフ (有向グラフとも呼ばれます) と 無向グラフの 2 つの主なタイプがあります。有向グラフでは、エッジは 1 つの方向を持ち、一方向、つまり開始頂点から終了頂点までのみ移動できます。無向グラフでは、エッジに方向がなく、両方向に横断できます。
グラフは、隣接行列または隣接リストを使用して実装できます。ここでは、隣接リストを使用して JavaScript でグラフを実装します。
ここでは、グラフィックス クラスのブループリントを作成します。
リーリーこの関数は、adjacencyList オブジェクトに新しいキーを作成し、その値として空の配列を与えることによって、グラフに新しい頂点 (またはノード) を追加します。新しい頂点はキーとして機能し、空の配列はその近傍を格納するために使用されます。
リーリーこの関数は、2 つの頂点の間に新しいエッジを追加します。これは、vertex1 と vertex2 の 2 つのパラメータを受け入れ、vertex2 を vertex1 の近傍配列に追加し、その逆も同様です。これにより、2 つの頂点間に接続が作成されます。
リーリーこの関数は、チャートをコンソールに記録します。これは、adjacencyList オブジェクト内の各頂点を反復処理し、頂点とその近傍を記録します。
リーリー ###例###エッジを削除
この関数はグラフから頂点を削除します。これは頂点引数を受け取り、まずその頂点に接続されているすべてのエッジを削除します。次に、adjacencyList オブジェクトからキーを削除します。
リーリー ###例###グラフ走査方法
グラフの走査には主に 2 つの方法があります:幅優先検索 (BFS) と深さ優先検索 (DFS) です。
B.深さ優先検索
深さ優先検索メソッドは、頂点を引数として受け取る再帰内部関数 dfs を使用して DFS アルゴリズムを実装します。この関数は、訪問されたオブジェクトを使用して訪問された頂点を追跡し、訪問された各頂点を結果配列に追加します。この関数はまず、現在の頂点を訪問済みとしてマークし、それを結果配列に追加します。次に、現在の頂点のすべての近傍を反復処理し、未訪問の近傍ごとに dfs 関数を再帰的に呼び出します。このプロセスは、すべての頂点が訪問され、結果の配列が DFS の結果として返されるまで続きます。
リーリー ###例###グラフは、オブジェクト間の関係や接続を表すために使用できる便利なデータ構造です。 JavaScript でのグラフの実装は、隣接リストや隣接行列の使用など、さまざまな手法を使用して実行できます。この回答で説明されている Graph クラスは、隣接リスト表現を使用します。各頂点はオブジェクト内のキーとして保存され、対応するエッジは配列内のそのキーの値として保存されます。
以上がJavaScriptでのグラフの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。