如何在 Rust 中使用字符串节点制作未加权的无向图?

How do I make an unweighted, undirected graph with string nodes in Rust?

我想用 Rust 中的字符串节点创建一个未加权的无向图。我一直在尝试使用 petgraphUnGraph 上提供的 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 {
   ...
}