Tag: 图论

是否有任何双向搜索Dijkstra算法的实现?

我正在寻找Java中Dijkstra(或任何其他源到目的地最短路径算法)的双向搜索(也称为“中间相遇”算法)的实现。 由于双向搜索处理比它看起来更棘手( 图算法,第26页 ),我想在重新发明轮子之前考虑现有的实现! PS:我说的是双向搜索 ,不要与双向图混淆) 这是一个棘手的图表示例:

树(有向无环图)实现

我需要一个这样的树/有向无环图实现: public class TreeNode { private K key; // ‘key’ for this node, always present private V value; // ‘value’ for this node, doesn’t have to be set private TreeNode parent; private Set<TreeNode> children; } 没有任何类型的分类。 TreeNode只是键的包装和可能的值(节点不必设置值)。 我需要父母和孩子的链接。 标准API或Commons等中有什么东西可以帮我吗? 我不介意自己写(我当然不是要求大家)我只是不想重新发明轮子。

寻找一个简单的Java API来创建图形(边缘+节点)

我正在尝试找到一个简单的Java API来创建图形关系 – addEdge(),addNode(),isConnected(node1,node2),findPaths(node1,node2)等。没有UI,只是逻辑。 我可以找到一堆学术项目,但似乎没有一个是“The Definitive Graph API”。 有谁知道这样的事情是否存在?

示例定向图和拓扑排序代码

任何人都知道我在哪里可以获得有向图的示例实现和用于在有向图上执行拓扑排序的示例代码? (最好是Java)