如何在 Petgraph 中获得确定性拓扑排序?

How can I get a deterministic topological sort in Petgraph?

我正在使用 Petgraph 的 toposort 函数来获取图形节点的排序列表。然而,toposort 并不保证同一级别的所有节点都将以一致的确定性顺序 returned。 Petgraph 中是否还有其他选项可以 return 节点确定顺序,或者我是否需要编写自己的函数? (如果有,有什么指点吗?)

因此 toposort(和其他算法)对图节点和边的创建顺序很敏感。我一直在为图表提供来自 HashMap 的数据,这些数据无法以确定的顺序迭代。通过将我的数据切换到 BTreeMap,节点和边缘以可靠的顺序创建,然后像 toposort 这样的算法给出确定性的结果。