目次
JavaScript CTU の実装
チャートクラスの作成
頂点を追加する
エッジを追加
チャートを印刷
次の例では、グラフを定義し、グラフに頂点とエッジを追加します。最後にグラフを印刷します。
この関数は 2 つの頂点間のエッジを削除します。これは 2 つの引数、vertex1 と vertex2 を受け取り、vertex1 の近傍配列から vertex2 をフィルターで除外し、その逆も同様です。
頂点を削除
次の例では、グラフを定義し、頂点とエッジを追加してから、グラフを印刷します。グラフからエッジ AC を削除し、最後に結果のグラフを印刷します。
グラフ トラバーサルとは、グラフのすべての頂点 (またはノード) を訪問し、それらに関連付けられた情報を処理するプロセスを指します。グラフ トラバーサルはグラフ アルゴリズムにおける重要な操作であり、2 つのノード間の最短パスの検索、サイクルの検出、接続されたコンポーネントの検索などのタスクに使用されます。
A. 幅優先検索 (BFS)
これは、breadthFirstSearch() 関数を使用して実装されます。この関数は幅優先検索アルゴリズムを実装し、開始頂点である start パラメーターを受け取ります。訪問する頂点を追跡するためにキューを使用し、訪問した頂点を保存するために結果配列を使用し、すでに訪問した頂点を追跡するために訪問オブジェクトを使用します。この関数はまず開始頂点をキューに追加し、それを訪問済みとしてマークします。次に、キューが空でない場合、キューから最初の頂点を取得し、それを結果配列に追加し、訪問済みとしてマークします。次に、未訪問の近隣ノードをすべてキューに追加します。このプロセスは、すべての頂点が訪問され、結果の配列が BFS の結果として返されるまで続きます。
次の例では、幅優先検索 (BFS) と深さ優先検索 (DFS) を示します。
Graph クラスは、グラフに頂点とエッジを追加し、グラフを印刷し、深さ優先検索と幅優先検索のトラバーサルを実行するためのメソッドを実装します。

JavaScriptでのグラフの実装

Sep 13, 2023 pm 12:49 PM

JavaScript 中图的实现

グラフは、一連の 頂点 (ノードとも呼ばれます) とそれらの間の関係 (またはエッジ) を表す非線形データ構造です。頂点はエンティティまたはオブジェクトを表し、edges は頂点間の関係または接続を表します。グラフを使用すると、ソーシャル ネットワーク、交通システム、情報フローなど、さまざまな種類の関係をモデル化できます。

グラフには、有向グラフ (有向グラフとも呼ばれます) と 無向グラフの 2 つの主なタイプがあります。有向グラフでは、エッジは 1 つの方向を持ち、一方向、つまり開始頂点から終了頂点までのみ移動できます。無向グラフでは、エッジに方向がなく、両方向に横断できます。

JavaScript CTU の実装

グラフは、隣接行列または隣接リストを使用して実装できます。ここでは、隣接リストを使用して JavaScript でグラフを実装します。

チャートクラスの作成

ここでは、グラフィックス クラスのブループリントを作成します。

リーリー

頂点を追加する

この関数は、adjacencyList オブジェクトに新しいキーを作成し、その値として空の配列を与えることによって、グラフに新しい頂点 (またはノード) を追加します。新しい頂点はキーとして機能し、空の配列はその近傍を格納するために使用されます。

リーリー

エッジを追加

この関数は、2 つの頂点の間に新しいエッジを追加します。これは、vertex1 と vertex2 の 2 つのパラメータを受け入れ、vertex2 を vertex1 の近傍配列に追加し、その逆も同様です。これにより、2 つの頂点間に接続が作成されます。

リーリー

チャートを印刷

この関数は、チャートをコンソールに記録します。これは、adjacencyList オブジェクト内の各頂点を反復処理し、頂点とその近傍を記録します。

リーリー ###例###

次の例では、グラフを定義し、グラフに頂点とエッジを追加します。最後にグラフを印刷します。

リーリー ###出力### リーリー

エッジを削除

この関数は 2 つの頂点間のエッジを削除します。これは 2 つの引数、vertex1 と vertex2 を受け取り、vertex1 の近傍配列から vertex2 をフィルターで除外し、その逆も同様です。

リーリー

頂点を削除

この関数はグラフから頂点を削除します。これは頂点引数を受け取り、まずその頂点に接続されているすべてのエッジを削除します。次に、adjacencyList オブジェクトからキーを削除します。

リーリー ###例###

次の例では、グラフを定義し、頂点とエッジを追加してから、グラフを印刷します。グラフからエッジ AC を削除し、最後に結果のグラフを印刷します。

リーリー ###出力### リーリー

グラフ走査方法

グラフ トラバーサルとは、グラフのすべての頂点 (またはノード) を訪問し、それらに関連付けられた情報を処理するプロセスを指します。グラフ トラバーサルはグラフ アルゴリズムにおける重要な操作であり、2 つのノード間の最短パスの検索、サイクルの検出、接続されたコンポーネントの検索などのタスクに使用されます。

グラフの走査には主に 2 つの方法があります:幅優先検索 (BFS) と深さ優先検索 (DFS) です。

A. 幅優先検索 (BFS)

これは、breadthFirstSearch() 関数を使用して実装されます。この関数は幅優先検索アルゴリズムを実装し、開始頂点である start パラメーターを受け取ります。訪問する頂点を追跡するためにキューを使用し、訪問した頂点を保存するために結果配列を使用し、すでに訪問した頂点を追跡するために訪問オブジェクトを使用します。この関数はまず開始頂点をキューに追加し、それを訪問済みとしてマークします。次に、キューが空でない場合、キューから最初の頂点を取得し、それを結果配列に追加し、訪問済みとしてマークします。次に、未訪問の近隣ノードをすべてキューに追加します。このプロセスは、すべての頂点が訪問され、結果の配列が BFS の結果として返されるまで続きます。

リーリー

B.深さ優先検索

深さ優先検索メソッドは、頂点を引数として受け取る再帰内部関数 dfs を使用して DFS アルゴリズムを実装します。この関数は、訪問されたオブジェクトを使用して訪問された頂点を追跡し、訪問された各頂点を結果配列に追加します。この関数はまず、現在の頂点を訪問済みとしてマークし、それを結果配列に追加します。次に、現在の頂点のすべての近傍を反復処理し、未訪問の近傍ごとに dfs 関数を再帰的に呼び出します。このプロセスは、すべての頂点が訪問され、結果の配列が DFS の結果として返されるまで続きます。

リーリー ###例###

次の例では、幅優先検索 (BFS) と深さ優先検索 (DFS) を示します。

リーリー ###出力### リーリー ###結論は###

グラフは、オブジェクト間の関係や接続を表すために使用できる便利なデータ構造です。 JavaScript でのグラフの実装は、隣接リストや隣接行列の使用など、さまざまな手法を使用して実行できます。この回答で説明されている Graph クラスは、隣接リスト表現を使用します。各頂点はオブジェクト内のキーとして保存され、対応するエッジは配列内のそのキーの値として保存されます。

Graph クラスは、グラフに頂点とエッジを追加し、グラフを印刷し、深さ優先検索と幅優先検索のトラバーサルを実行するためのメソッドを実装します。

以上がJavaScriptでのグラフの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

PowerPointはJavaScriptを実行できますか? PowerPointはJavaScriptを実行できますか? Apr 01, 2025 pm 05:17 PM

JavaScriptはPowerPointで実行でき、外部JavaScriptファイルを呼び出したり、VBAを介してHTMLファイルを埋め込んだりすることで実装できます。 1. VBAを使用してJavaScriptファイルを呼び出すには、マクロを有効にし、VBAプログラミングの知識を持つ必要があります。 2。JavaScriptを含むHTMLファイルを埋め込みます。これは、シンプルで使いやすいが、セキュリティ制限の対象となります。利点には、拡張機能と柔軟性が含まれますが、欠点にはセキュリティ、互換性、複雑さが含まれます。実際には、セキュリティ、互換性、パフォーマンス、ユーザーエクスペリエンスに注意を払う必要があります。

See all articles