Javaを使ってDFS(深さ優先探索)とBFSを実装したいです。
Javaには、すぐに使用できる組み込みのツリーデータ構造がありますか? または私が使用できる他のものはありますか?
Javaを使ってDFS(深さ優先探索)とBFSを実装したいです。
Javaには、すぐに使用できる組み込みのツリーデータ構造がありますか? または私が使用できる他のものはありますか?
無料の Java グラフ ライブラリが提供されているhttp://www.jgrapht.org/をご覧ください。このライブラリを使用すると、あらゆる種類のグラフを作成できます。また、ツリーはグラフのサブセットにすぎないため、このライブラリを使用してツリーを作成することもできます。DFS (または BFS) は、このライブラリを使用して簡単に実装できます。また、ライブラリが提供するアルゴリズムを使用することもできます。ただし、DFS (または BFS) を実装することは良い練習になります。
幸運を!
DefaultMutableTreeNodeを使用してデータ構造を構築できます。これにはメソッドが含まれておりbreadthFirstEnumeration()
、depthFirstEnumeration()
calilng によって各ノードにデータをアタッチできますsetUserObject(Object)
。パッケージの一部ですが、javax.swing.tree
これは「モデル」コードであるため、直接の UI コードの依存関係はありません。
構造に重複が必要ないと仮定すると、TreeSetは十分に適切な開始点です。DFSは無料で入手でき(iterator())、NavigableSetインターフェイスを使用してBFSを構築できます。
いいえ、組み込み構造はありません。Java ベース ライブラリにすべてが含まれていることを考えると、 Data.Treeに相当するものがないのはおかしいです。
最も近いのは java.util.TreeSet で、これは Tree ではなく Set になるように設計されています (swing JTree もありますが、役に立ちません)。