我想使用 java 实现 DFS(深度优先搜索)和 BFS。
java是否有一个内置的树数据结构,我可以随时使用?或者我可以使用的其他任何东西?
我想使用 java 实现 DFS(深度优先搜索)和 BFS。
java是否有一个内置的树数据结构,我可以随时使用?或者我可以使用的其他任何东西?
看看http://www.jgrapht.org/那里提供了一个免费的 java 图形库。使用这个库,您可以创建所有类型的图形,并且由于树只是图形的一个子集,您也可以使用这个库创建树。使用这个库很容易实现 DFS(或 BFS),或者您可以使用该库提供的算法。但是,实现 DFS(或 BFS)是一个很好的练习。
祝你好运!
You could use DefaultMutableTreeNode to build your data structure. It contains methods breadthFirstEnumeration()
and depthFirstEnumeration()
and allows you to attach data to each node by calilng setUserObject(Object)
. Despite part of the javax.swing.tree
package this is "model" code and so doesn't have any direct UI code dependencies.
假设你不想在你的结构中重复,那么 TreeSet 是一个足够好的起点。您可以免费获得 DFS(iterator()),并且可以使用 NavigableSet 接口来构建 BFS。
不,没有内置结构。鉴于 Java 基础库应有尽有,没有与Data.Tree等效的东西真是太疯狂了
最接近的是 java.util.TreeSet,它被设计为 Set 而不是 Tree(还有 swing JTree,但它不会帮助你)。