ホームページ  >  記事  >  Java  >  グラフの走査

グラフの走査

WBOY
WBOYオリジナル
2024-08-10 06:45:09545ブラウズ

深さ優先と幅優先は、グラフを走査する 2 つの一般的な方法です。
グラフ トラバーサル は、グラフ内の各頂点を 1 回だけ訪問するプロセスです。グラフを走査するには 2 つの一般的な方法があります。深さ優先走査 (または 深さ優先検索) と 幅優先走査 (または 幅-最初の検索)。どちらの走査も結果としてスパニング ツリーを生成します。これは、次の図に示すように、クラスを使用してモデル化できます。 Tree は、AbstractGraph クラスで定義された内部クラスであることに注意してください。 AbstractGraph.Tree は、要素の検索で定義された Tree インターフェイスとは異なります。 AbstractGraph.Tree はノードの親子関係を記述するために設計された特殊なクラスですが、Tree インターフェイスはツリー内の検索、挿入、削除などの一般的な操作を定義します。スパニング ツリーに対してこれらの操作を実行する必要がないため、AbstractGraph.TreeTree のサブタイプとして定義されません。

Graph Traversals

Tree クラスは、AbstractGraph.java の行 226 ~ 293 で AbstractGraph クラスの内部クラスとして定義されています。コンストラクターは、ルート、エッジ、検索順序を含むツリーを作成します。

Tree クラスは 7 つのメソッドを定義します。 getRoot() メソッドはツリーのルートを返します。 getSearchOrder() メソッドを呼び出すことで、検索された頂点の順序を取得できます。 getParent(v) を呼び出して、検索で頂点 v の親を見つけることができます。 getNumberOfVerticesFound() を呼び出すと、検索された頂点の数が返されます。メソッド getPath(index) は、指定された頂点インデックスからルートまでの頂点のリストを返します。 printPath(v) を呼び出すと、ルートから v までのパスが表示されます。 printTree() メソッドを使用して、ツリー内のすべてのエッジを表示できます。

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

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