使用java的深度优先搜索

使用java的深度优先搜索,java,tree,breadth-first-search,depth-first-search,Java,Tree,Breadth First Search,Depth First Search,我想用java实现DFS(深度优先搜索)和BFS java是否有内置的树数据结构,我可以轻松使用?或者我可以使用的任何其他东西?假设您不想在结构中重复,那么TreeSet是一个足够好的起点。您可以免费获得DFS(迭代器()),并且可以使用NavigableSet接口来构建BFS。不,没有内置结构。鉴于Java基础库拥有一切,没有与之等价的东西是疯狂的 最接近的是java.util.TreeSet,它被设计成一个集合而不是一个树(还有swing JTree,但它对您没有帮助)。您可以使用它来构建数

我想用java实现DFS(深度优先搜索)和BFS


java是否有内置的树数据结构,我可以轻松使用?或者我可以使用的任何其他东西?

假设您不想在结构中重复,那么TreeSet是一个足够好的起点。您可以免费获得DFS(迭代器()),并且可以使用NavigableSet接口来构建BFS。

不,没有内置结构。鉴于Java基础库拥有一切,没有与之等价的东西是疯狂的

最接近的是java.util.TreeSet,它被设计成一个集合而不是一个树(还有swing JTree,但它对您没有帮助)。

您可以使用它来构建数据结构。它包含方法
breadthFirstEnumeration()
depthFirstEnumeration()
并允许您通过校准
setUserObject(Object)
将数据附加到每个节点。尽管是javax.swing.tree包的一部分,但这是“模型”代码,因此没有任何直接的UI代码依赖关系。

看看哪里提供了免费的java图形库。使用该库,您可以创建所有类型的图,并且由于树只是图的子集,因此您也可以使用该库创建树。DFS(或BFS)使用此库很容易实现,也可以使用库提供的算法。然而,实现DFS(或BFS)是一个很好的练习


祝你好运

树数据类型很容易装箱——对于一个库来说,很难使它对所有用例都足够通用,但是java中已经有了所有需要的部分。需要记住的几个限制:TreeSet强制底层数据建模为二叉树,并且它是可比较的。t@adamski. 谢谢你,伙计。我不知道我的呕吐能帮助别人。现在我会的