如何在 Rust 中使用字符串节点制作未加权的无向图?
How do I make an unweighted, undirected graph with string nodes in Rust?
我想用 Rust 中的字符串节点创建一个未加权的无向图。我一直在尝试使用 petgraph
和 UnGraph
上提供的 from_edges
构造方法,但我无法这样做,因为 &str
不是有效的 NodeIndex。有更简单的方法吗?
您可以使用 HashMap
,其中 键 是节点, 值 是 Vec
连接到关键节点的节点。为方便起见,使用 String
作为节点的主要类型。
另请注意,无向图仅意味着您需要将两个节点都添加到相邻列表中。在示例中:
{
"start": ["a", "b"],
"a" : ["b", "d", "end"],
"b": ["a", "end"],
"d" : [],
"end": []
}
type Graph = HashMap<String, Vec<String>>;
impl Graph {
...
}
我想用 Rust 中的字符串节点创建一个未加权的无向图。我一直在尝试使用 petgraph
和 UnGraph
上提供的 from_edges
构造方法,但我无法这样做,因为 &str
不是有效的 NodeIndex。有更简单的方法吗?
您可以使用 HashMap
,其中 键 是节点, 值 是 Vec
连接到关键节点的节点。为方便起见,使用 String
作为节点的主要类型。
另请注意,无向图仅意味着您需要将两个节点都添加到相邻列表中。在示例中:
{
"start": ["a", "b"],
"a" : ["b", "d", "end"],
"b": ["a", "end"],
"d" : [],
"end": []
}
type Graph = HashMap<String, Vec<String>>;
impl Graph {
...
}