问题描述
我正在使用 petgraph 的 toposort
函数来获取图表节点的排序列表。但是,toposort
不保证同一级别的所有节点都将以一致的确定性顺序返回。 petgraph 中是否有其他选项可以确定性顺序返回节点,还是我需要编写自己的函数? (如果是这样,任何指针?)
解决方法
所以 toposort
(和其他算法)对图节点和边的创建顺序很敏感。我一直在用来自 HashMap
的数据提供图表,这些数据不能以确定性的顺序进行迭代。通过将我的数据切换到 BTreeMap
,节点和边以可靠的顺序创建,然后 toposort
等算法给出确定性结果。