我想使用java实现DFS(深度优先搜索)和BFS。
java是否有内置的树数据结构,我可以读取吗?或者我可以使用的任何其他东西?
答案 0 :(得分:4)
查看提供免费java图库的http://www.jgrapht.org/。使用此库可以创建所有类型的图形,并且由于树只是图形的子集,因此您还可以使用此库创建树。使用此库可以轻松实现DFS(或BFS),也可以使用库提供的算法。但是,实施DFS(或BFS)是一个很好的练习。
祝你好运!
答案 1 :(得分:2)
您可以使用DefaultMutableTreeNode来构建数据结构。它包含方法breadthFirstEnumeration()
和depthFirstEnumeration()
,并允许您通过calilng setUserObject(Object)
将数据附加到每个节点。尽管部分javax.swing.tree
包这是“模型”代码,因此没有任何直接的UI代码依赖。
答案 2 :(得分:1)
假设你不想在你的结构中重复,那么TreeSet是一个不错的起点。您可以免费获得DFS(iterator()),并且可以使用NavigableSet接口来构建BFS。
答案 3 :(得分:0)
不,没有内置结构。鉴于Java基础库拥有一切,它是疯狂的,没有相当于Data.Tree
最接近的是java.util.TreeSet,它被设计为Set而不是Tree(还有swing JTree,但它对你没用)。